2013-07-03 68 views
0

我需要一個.htaccess文件,這將做這樣的事情刪除文件擴展名:的.htaccess來強制地址

  1. 當用戶輸入www.site.com/some_folder/test它會不斷的地址,因爲它是打開相應的頁面(測試.PHP)
  2. 當用戶輸入www.site.com/some_folder/test.php它會刪除擴展名爲.php至www.site.com/some_folder/test,它就會打開相應的頁面(test.php的)

我有現在的問題是:

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

它只能滿足第一種情況而不能滿足第二種情況。 (當我輸入www.site.com/some_folder/test.php它仍然會顯示www.site.com/some_folder/test.php

我應該在.htaccess文件中更改/添加什麼來實現第二種方案?

任何幫助將非常感激。

非常感謝。

+0

這樣做下面的作品的答案嗎? –

回答

0

以下指令添加到您的.htaccess

RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteRule (.*)\.php$ /$1 [R=301,L,QSA,NC] 

編輯: 如果你在本地主機:

RewriteBase /sitename/ 
RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteRule (.*)\.php$ $1 [R=301,L,QSA,NC] 
+0

它幾乎工作。但是,當我嘗試在我的XAMPP它消除了「網站名稱」,因此而不是'本地主機/站點名/文件夾/ test.php'就變成'本地主機/文件夾/ test'任何想法,缺什麼?或者它不應該在xampp上測試?以前感謝。 –

+0

,因爲你在本地主機的時候,你的情況是根本不WWW站點名,我已經更新了我的答案,如果你的.htaccess中/網站名稱/ –

+0

唉唉感謝這麼多,應該工作!真的很感激它.. –