2014-10-19 51 views
-2

我有一個PHP文件www.example.com/media.php 我也有一個在www.example.com同名的目錄/media/manyotherfiles.phphtaccess:直接到php如果php存在,如果沒有,直接到目錄

如果我以www.example.com/media或www.example.com/media/的身份輸入我的網址,我希望將其定向到www.example.com/media上的文件。 PHP,而不是工作目錄中的文件。 但是,如果我以www.example.com/media/manyotherfiles的身份輸入我的網址,我希望將其定向到www.example.com/media/manyotherfiles.php。 (它更直觀,因爲media.php文件鏈接到媒體目錄中的頁面)

如何使用我的.htaccess文件來做到這一點?到目前爲止,我有這個刪除PHP文件擴展名:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+?)/?$ $1.php [L] 

Options -Indexes 

而且,我目前工作的一個本地服務器上的測試目錄,因此,例如,我的文件會是這樣:

ip.address.here/beta/index.php 
ip.address.here/beta/media.php 
ip.address.here/beta/media/manyotherfiles.php 

回答

0

您可以使用此代碼在您的DOCUMENT_ROOT/.htaccess文件隱藏.php擴展:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

這並不工作 - ,我得到一個404未找到錯誤,當我現在嘗試訪問任何PHP文件除了FO r index.php。它說沒有找到類似「/ media/manyotherfiles」的東西。 – Rookie94 2014-10-20 01:08:20

+0

你可以在瀏覽器中打開「http:// domain.com/media/manyotherfiles.php」嗎?確保這是規則之前的其他規則,它被放置在根.htaccess – anubhava 2014-10-20 03:39:43

+0

是的,但我不能打開這樣的PHP文件:'http:// domain.com/page.php'。儘管該文件在root權限。 – Rookie94 2014-10-20 14:46:46