2015-09-26 150 views
0

這裏是我的.htaccess文件如何使用.htaccess文件限制PHP文件訪問?

Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L] 

我的基本文件夾中包含一個「的index.php」文件和「應用程序」文件夾和應用程序文件夾中包含一些PHP文件,我不想直接訪問這些PHP使用瀏覽器在app文件夾內的文件

+0

規則本身看起來很好,但爲什麼這些條件呢?他們實際上允許訪問其他php文件! – arkascha

+0

如果我刪除了條件,那麼我的應用程序文件夾中的css和js不會在瀏覽器中加載 – ganapathy888

+0

啊,所以你有更復雜的要求。然後,您需要更多特定的條件,只會阻止訪問php文件,但不會像編碼時那樣訪問現有文件。 – arkascha

回答

0

正如您在問題的評論中提出的那樣,您的要求實際上比您在問題中編寫的要複雜一些。

我想這是你實際上是在尋找:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} \.php$ 
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L] 

當請求中的文件名中.php文件擴展名結束。這將改寫請求index.php

+0

好吧,它適用於我,我有另一個問題,當我訪問應用程序文件夾中的一些文件,然後CSS和JS文件位置改變相對於該文件,而不是index.php。所以它顯示的頁面沒有CSS和JS。如何解決它? – ganapathy888

+0

如果它總是與被調用的(index.php)相同的腳本,我不會看到如何發生這種情況。從那裏到資產的路徑是靜態的,清晰的和定義的。我在那裏看不到問題。您可以在引用資產時開始使用絕對路徑,但這是糟糕的風格,因爲它會降低代碼的可移植性。 – arkascha

+0

此代碼是否適用於所有子文件夾?也就是說,如果對子文件夾中任何php文件的請求將重定向到index.php文件? – ganapathy888