2012-04-13 66 views
0

我有以下代碼:用戶友好的URL的.htaccess

RewriteRule ^fishing/([^/]*)/([^/]*) fishery.php?url=$2&region=$1 [L] 
RewriteRule ^fishing/([^/]*) region.php?region=$1 [L]  

當我domain.com/fishing/fife類型,那麼它會顯示正確region.php文件。

但是如果我在domain.com/fishing/fife/與/結尾,然後鍵入它加載fishery.php頁面代替。我怎樣才能防止這個?

其次是壞的搜索引擎優化的目的是否能將其裝入爲/釣魚/笛代替釣魚/ fife.php?畢竟它的一個頁面不是目錄?如果它不重要,那麼我會更喜歡它沒有.php,因爲它看起來很整齊。

在此先感謝

回答

2

我想這應該這樣做:

RewriteRule ^fishing/([^/]*)/([^/]+) fishery.php?url=$2&region=$1 [L] 
RewriteRule ^fishing/([^/]*)/?$ region.php?region=$1 [L] 

也有沒有錯,有一個「目錄」的網址,而不是網頁的,事實上我認爲這可能是更好不會更壞對於SEO ...

+0

非常感謝您的幫助。這工作完美。我可以幫你解釋一下嗎?還有第二部分的建議嗎? – 2012-04-13 03:49:58

+0

我改變了'*'成'+'(在第一圖案),爲'+'表示1或更多的('*'表示0或更多的),所以它不再匹配是否存在後沒有什麼是第二次斜線。對於第二種模式,我放置了一個'/?'('?'表示前面的char是0或1),所以它在末尾匹配一個'/',如果它在那裏,然後'$'這意味着末尾在這種情況下,這並不是真的必要,但我覺得很好的做法是表明URL的末尾位於模式中以避免意外的模式衝突 – joshuahealy 2012-04-13 03:54:10

+0

再次感謝您的幫助。 – 2012-04-13 04:04:03