2014-04-16 45 views
1

我在那裏,如果你鍵入一個重寫規則:重寫拉昇目錄

www.whatever.com/profile-one.php

這是你看到的網址,但實際模板頁面:

www.whatever.com/profile.php

這裏一重新htaccess的線路:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)([^/])$ http://www.whatever.com/$1$2/ [R=301,L] 
RewriteRule profile-(.*)\.php$ profile.php?name=$1 

我的問題是,如果你訪問像網址:

www.whatever.com/second/profile-one.php

它儘管profile.php模板不存在於「第二個」目錄中,但仍嘗試恢復配置文件頁面。請預防這種情況的最佳方法是什麼?

回答

0

這是由於錯誤的正則表達式在這裏發生的。您需要在第二條規則中使用起始錨點:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)([^/])$ http://www.whatever.com/$1$2/ [R=301,L] 

RewriteRule ^profile-(.*)\.php$ profile.php?name=$1 [L,QSA] 
+0

再次感謝您,anubhava! – user3541184

+0

不客氣,很高興它解決了。 – anubhava