2012-06-18 36 views
0

我使用下面的加在URL中.php文件擴展支持:面臨運行htaccess的麻煩根目錄和文件夾目錄

RewriteEngine On 
RewriteRule ^/?([a-z]+)$ $1.php [L] 

例如,如果URL是www.doamin.com/create那麼它會調用create.php

如果我將我的.htaccess文件粘貼到根文件夾中,並調用www.doamin.com/notes/create,則出現錯誤。如果我將我的.htaccess文件粘貼到notes文件夾中,它運行良好。

爲什麼root不支持文件?

回答

0

嘗試的RewriteRule之前添加此:

RewriteCond %{REQUEST_URI} !\.php$ 

當你的規則是在docurment根,它循環無限期:

  1. URI =票據/創建
  2. 應用規則,URI = notes/create.php
  3. apply rule,URI = notes/create.php.php
  4. apply rule, URI = notes/create.php.php.php

您需要添加一個條件,以便如果URI以.php結尾,則不應用規則。您可以添加的另一個條件是檢查URI是否不存在(例如,如果create.php文件不存在)。所以你應該在你的規則之前加上這些:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
相關問題