[英]How can I rewrite query parameters to path parameters in Apache?
我目前有一個網站,我試圖優化SEO。
我的網站使用以下網址:
domain.com/?app=about
在我的應用中, $_GET[app]
設置為'about',正如預期的那樣。
現在,我想這樣做,以便將domain.com/about
這樣的網址視為domain.com/?app=about
。
我怎么能在Apache .htaccess文件中這樣做?
這些被稱為RewriteRule
,它們相當簡單:
RewriteEngine on
RewriteRule ^about$ /index.php?app=about
至於使它更通用,這是怎么回事:
RewriteEngine on
RewriteRule ^([A-Za-z]+)$ /index.php?app=$1
這會對/ staff或/ contact重定向到index.php這樣的任何請求?app = [staff | contact]
在你的.htaccess中使用它
RewriteEngine on
RewriteBase /your-site # only if neccessary
RewriteRule ^([^/])$ index.php?app=$1 [R,L]
編輯
我添加了L標志意味着將此作為最后一條規則,並且R標志本身不會更改URL ..只是在內部重寫。 執行R = 301會將瀏覽器轉發到重寫的頁面,這對調試很有用。
創建獲取所請求路徑的通用.htaccess可以使用以下行完成:
RewriteRule ^((.+/)+)$ /index.php?path=$1 [L,B]
這將為您提供正確請求轉義的路徑,因此如果請求的路徑是/ hello / world,您將在path參數中獲得hello%2Fworld 。 使用PHP函數urldecode()獲取原始格式。
僅當網址以“/”結尾時才有效。
注意如果你在同一個文件中有其他重寫,你應該把它放在最后,因為它基本上匹配任何東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.