2012-07-12 257 views
1

在我的網站上,我正在嘗試重寫一個適合搜索引擎優化的長URL。網址重寫無法正常工作

我有下面的代碼,但它似乎沒有什麼影響!但是,如果我在我的htaccess中輸入dgadgdfsg,則會引發內部服務器錯誤。所以我認爲這是重寫規則。

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 

我已確認mod_rewrite已打開。


這是當前的URL

http://mysite.com/missing-people/user-profile.php?userID=1 &的firstName =利安&的lastName = Gallagher的

和這是我想它也出現像

http://mysite.com/1/Liam/Gallagher

+0

能否請您添加您要處理搜索引擎友好的URL外部一次 – DavChana 2012-07-12 12:51:46

+0

編輯@Davinder – Callum 2012-07-12 12:54:29

回答

1

改變你的重寫規則這(從您的版本略有修改)

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [QSA,L] 

如果不工作,嘗試把一個R標誌用於測試目的(這將讓你的瀏覽器改變原有的URI於:?/missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

0

意味着你的什麼僅包含數字,而firstNamelastName僅爲字母數字。

RewriteEngine On 
RewriteRule /(\d+)/(\w+)/(\w+)/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 

更嚴格的版本,做同樣的事情,除了它爲開始和評估的正則表達式的結束邊界。

RewriteEngine On 
RewriteRule /^(\d+)\/(\w+)\/(\w+)$/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 
+0

感謝@holodoc,但是處理不當的工作,好像沒有什麼改變 – Callum 2012-07-12 12:58:48

+0

它應該工作。嘗試用'[R]'替換'[L]'來查看外部重定向是否起作用,或至少確認重寫工作(瀏覽器URL應該改變)。 – brezanac 2012-07-12 13:04:37