[英]Mod Rewrite (SEO Friendly URL's)
您可能以為我可以輕松地在S / O上找到答案,但是我已經嘗試了一切,經過數小時的挫折后,我屈服了,然后看看真正的專家的想法。
我敢肯定,這可以通過mod rewrite來完成,但是我會順便給你的。
問題:我正在嘗試打開這樣的網址...
http://domain.com/new-cars/state.php?stateCode=al
至少要...
http://domain.com/new-cars/al-new-cars
不過,理想情況下,我希望它看起來像這樣(是的,我願意重寫一些代碼以將完整的狀態名稱用作$ stateCode變量,以使其變得更簡單!)...
http://domain.com/new-cars/alabama-new-cars
最終,該計划是要能夠在諸如...的鏈接中使用URL。
http://domain.com/new-cars/alabama-new-cars
並讓.htaccess負責將此SEO友好URL與動態版本相關聯並正確顯示頁面。
無論哪種方式,我都無法根據自己的需要弄清楚該如何做。
這是我嘗試過的。
Options +FollowSymlinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^new-cars/([^-]*)-new-cars/$ /new-cars/state.php?stateCode=$1 [L,QSA,NC]
我使用2個不同的mod重寫生成器以及對其他人的問題的各種答案創建的各種變體。
絕對沒有任何作用。
我希望當我去
http://domain.com/new-cars/state.php?stateCode=AL
它將URL重寫為
http://domain.com/new-cars/AL-new-cars
...但事實並非如此。 取而代之的是,它保持與我鍵入的動態URL完全相同。如果我轉到“所需”重寫URL,則會收到404錯誤,表明該頁面不存在。
我究竟做錯了什么?
我以為可能我的.htaccess權限設置不正確,但是我可以很容易地通過.htaccess進行301重定向,事實並非如此。
也許有人可以幫忙。 我已經嘗試了很多排列,甚至為了最基本的重寫而安定下來,只是為了看看我是否可以使它工作-但是什么也沒有。
任何幫助表示贊賞!
您可以使用:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+new-cars/state\.php\?stateCode=([^\s&]+) [NC]
RewriteRule ^ /new-cars/%1-new-cars? [R=301,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^new-cars/([^-]*)-new-cars/?$ /new-cars/state.php?stateCode=$1 [L,QSA,NC]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.