我有一個使用 PHP 查詢字串的 URL 字串。我想讓 URL 變得漂亮,但我無法正確地制定規則。
目前 URL 如下所示:
http://localhost/pages/map?name=Skyfall-2022
但我希望它看起來像這樣:
http://localhost/pages/Skyfall-2022
這是我目前的 htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.] )$ $1.php [NC,L]
RewriteRule ^([^\.] )$ $1.html [NC,L]
RewriteRule ^pages/(. )$ /pages/map?name=$1
當我嘗試輸入所需的 URL 時,出現 500 內部錯誤。我不太了解正則運算式,所以如果有人可以使用更新的 .htacces 為我調整它,我將不勝感激
uj5u.com熱心網友回復:
使用您顯示的示例,請嘗試遵循 htaccess 規則。
在測驗您的 URL 之前,請確保清除瀏覽器快取。
RewriteEngine ON
##External redirect for url change in browser rules here...
RewriteCond %{THE_REQUEST} \s/(pages)/map/?\?name=(\S )\s [NC]
RewriteRule ^ %1/%2? [R=301,L]
##Internal rewrite here for internal file's serving here.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/(.*)/?$ $1/all-maps.php?name=$2 [QSA,L]
注意:我提到了地圖?在重寫規則(在規則中也寫在注釋中的第二組規則)中,您可以使用 php 檔案的名稱更改它,無論您必須將查詢字串傳遞給什么 php 檔案。
NOTE2(OP 根據 OP 環境修復):稍微調整 1 條規則$1/all-maps.php?name=$2 to $1/map.php?name=$2并將 all-maps.php 移動到一個目錄下,這些規則運行良好,OP 在此處的評論中提到。只是在這里分享,將來它可以幫助人們除了上述規則之外,這是作為解決方案的一部分完成的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/396477.html
標籤:阿帕奇 .htaccess 改写 url重写 请求参数
下一篇:Linux一次重命名多個檔案
