亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.htaccess url 重寫以從 url 中刪除操作名稱

.htaccess url 重寫以從 url 中刪除操作名稱

PHP
臨摹微笑 2023-04-15 10:51:10
我有這樣的網址domain.com/index.php?id=126&action=Category&name=Vegetables我希望我的網址看起來像這樣domain.com/126/Category/Vegetables我使用 .htaccess 嘗試了很多但無法做到。需要您的幫助和建議。
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

聽起來很直接:

RewriteEngine on
RewriteRule ^/?(\d+)/([^/]+)/([^/]+)$ /index.php?id=$1&action=$2&name=$3 [END]

如果您使用上述規則收到內部服務器錯誤(http 狀態 500),那么您可能操作的是非常舊版本的 apache http 服務器。在這種情況下,您將在您的 http 服務器錯誤日志文件中看到一個不受支持的[END]標志的明確提示。您可以嘗試升級或使用舊[L]標志,在這種情況下它可能會工作相同,盡管這在一定程度上取決于您的設置。

此實現同樣適用于 http 服務器主機配置或分布式配置文件(“.htaccess”文件)。顯然重寫模塊需要在http服務器內部加載并在http主機中啟用。如果您使用分布式配置文件,您需要注意它的解釋在主機配置中完全啟用并且它位于主機的文件夾中DOCUMENT_ROOT。

還有一條一般性的評論:您應該始終更喜歡將此類規則放在 http 服務器主機配置中,而不是使用分布式配置文件(“.htaccess”)。那些分布式配置文件增加了復雜性,通常是意外行為的原因,難以調試并且它們確實減慢了 http 服務器的速度。它們僅在您無法訪問真正的 http 服務器主機配置(閱讀:非常便宜的服務提供商)或堅持編寫自己的規則(這是一個明顯的安全噩夢)的應用程序的情況下作為最后的選擇提供。


查看完整回答
反對 回復 2023-04-15
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

<IfModule mod_rewrite.c>

 

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)/$ /$1 [L,R] 


RewriteCond %{THE_REQUEST} \ /(.*/|)(?:index\.php)?\?name=([^\s&]+) [NC]

RewriteRule ^ /%1%2/? [R=302,L,NE]


RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !index\.php

RewriteRule ^(.*/|)([^/]*)$ $1index.php?name=$2/ [L]


RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Header always set Content-Security-Policy "upgrade-insecure-requests;"


</IfModule>


查看完整回答
反對 回復 2023-04-15
  • 2 回答
  • 0 關注
  • 213 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號