簡體   English   中英

Mod重寫(SEO友好URL)

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

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