2013-08-03 119 views
0

我在htaccess文件有這個重定向.PHP沒有.PHP

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

,這將使人們獲得server/login.php剛剛server/login,但我怎樣才能讓這個如果server/login.php被輸入到地址欄它會重定向到server/login

由於這個問題,我的網站得到不同的點擊,而不僅僅是一個網址,謝謝你的努力和時間。

回答

1

你可以用一個外部重定向做到這一點:

RewriteRule ^(.*)\.php$ $1 [R,L] 

的R-標誌是一個臨時重定向。如果事情按照您期望的那樣工作,您可以使用R = 301使其成爲永久重定向。有關更多信息,請參閱the documentation

編輯:用你目前的規則,這將創建一個無限循環。如果您正在運行Apache 2.3.9或更高版本,請在您的內部重寫規則中使用END標誌。如果你不願或不能使用這樣的Apache版本,你可以使用「THE_REQUEST」招停止一個無限循環,因爲如果請求來自外界,這將只匹配:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)\.php[\s\?] [NC] 
RewriteRule^%1 [R,QSA,L] 
1

更改你的基地路徑RewriteBase /path/

RewriteEngine on 
RewriteBase /path/ 

RewriteCond %{THE_REQUEST} \.php 
RewriteRule ^(.*)\.php$ $1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php