Apache-2.4
用於 SEO URL 的 htaccess mod_rewrite 被錯誤地重寫
我正在嘗試做的是擁有漂亮的 URL。在我希望整個字元串指向一個 PHP 腳本的情況下,我已經實現了這一點。我不。
所以,這行得通:
example.com/login/1/2
=>/index.php?go=login&do=1&msg=2
使用:
RewriteEngine on RewriteBase / RewriteRule ^([0-9a-zA-Z_-]+)/?$ /index.php?go=$1 [L,QSA] RewriteRule ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /index.php?go=$1&do=$2 [L,QSA] RewriteRule ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /index.php?go=$1&do=$2&q1=$3 [L,QSA]
現在假設我想要
example.com/webapp/1/2/3
=>webapp.php?1=1&2=2&3=3
通過在上面添加以下內容:
RewriteRule ^webapp/?$ /webapp.php [L,QSA] RewriteRule ^webapp/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1 [L,QSA] RewriteRule ^webapp/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1&do=$2 [L,QSA] RewriteRule ^webapp/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ /webapp.php?go=$1&do=$2&q1=$3 [L,QSA]
導航到每次
example.com/webapp
重定向,剝離任何查詢字元串。index.php
如果我註釋掉第一個程式碼塊,然後導航到
example.com/webapp
我應該得到webapp.php
的。我在任何日誌中都沒有錯誤。通話期間的訪問日誌向webapp報告302
我究竟做錯了什麼?
通過在上面添加這個
您需要在上述內容之前添加它!
您的規則需要按照具體的順序排列。最具體的規則在前,最一般的規則在後。您的第一個規則塊包含最通用/包羅萬象的規則,因此這就是擷取請求並停止處理的地方。
我不確定你是否正確理解了漂亮 URL 的概念:https ://en.wikipedia.org/wiki/Semantic_URL 你打算做什麼肯定不會幫助你的 SEO。而且您不應該臨時重定向(302重定向)而是永久重定向
$$ R=301 $$.