2014-04-21 105 views
1

我有以下的htaccess代碼:刪除最後一個文件夾的htaccess後一切

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/\.]+)/([^/\.]+) index.php?task=location&state=$1&city=$2 [L] 

這對URL的喜歡:

website.com/texas/houston 
website.com/new-york/new-york 
... 

如果我去的URL website.com/texas/houston/bfdsjfds ,我獲得了與網站website.com/texas/houston相同的內容。 如何刪除上例中的「/ bfdsjfds」?或頁面重定向到一個404

回答

1

您可以使用端錨$只匹配/state/city

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?task=location&state=$1&city=$2 [L] 

這將自動爲website.com/texas/houston/bfdsjfds類型的URL返回404。

+0

已經嘗試過,但在此代碼中無效。我已經在使用它(成功)用於其他重寫規則,例如:RewriteRule^contact?$ index.php?task = contact [L]。但在我的問題代碼中,它不起作用。 – OsiriX

+0

你能澄清一下你的評論嗎?哪個網址不起作用?如果它不起作用,你會得到什麼問題?如果是的話,你是否有更多的規則,然後張貼他們的問題。 – anubhava

+0

我剛剛意識到我是多麼愚蠢:)您的解決方案確實有效!在我的開場白問題中,我有其他重寫規則。我不得不爲所有人添加「?$」以使其工作。這是非常明顯的現象。非常感謝! – OsiriX

相關問題