簡體   English   中英

如何在Apache中將查詢參數重寫為路徑參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM