2011-07-23 192 views
0

我遇到阻止php腳本訪問的htaccess問題。.htaccess阻止訪問該網站

這是我收到的時候我加載了頁面錯誤信息:

您沒有權限訪問此服務器上的index.php。

當我刪除.htaccess文件我可以訪問index.php沒有問題。

相同的.htaccess文件在我使用的不同主機上正常工作。

我的.htaccess文件(編輯:由toopay建議後整理的)

RewriteEngine On 
<Files .*> 
Order allow,deny 
    Allow from all 
</Files> 
Options FollowSymLinks 
RewriteRule ^photos.+$ thumbs.php [L,QSA] 

RewriteRule ^[a-zA-Z0-9\-_]*$ index.php [L,QSA] 
RewriteRule ^[a-zA-Z0-9\-_]+\.html$ index.php [L,QSA] 

我也嘗試將文件權限的設置爲644,755,777,但仍不能與任何環境中工作。

能否請你幫我看看我有什麼問題,因爲這是第一次發生,相同的.htaccess文件在同一託管的不同域(文件夾)上工作正常。

+0

打開重寫引擎日誌和檢查輸出。 –

+0

難道你最近的2個rewriterules只能產生一個無限循環嗎?只是一個想法。 – TMS

+0

@Tomas它不會產生無限循環:第二行不是停放(。)最後一行是解析.html文件,而不是圖像等。 (最後一行僅僅是因爲這個網站之前是靜態html的 - >這種方式我們不會失去訪問者:php會在事後正確地重定向) – Czakalli

回答

0

我設法找到解決方案,問題非常簡單,我在FollowSymLinks之前缺少一個+。簡單的問題,很少浪費時間來找到解決方案。最奇怪的部分是,在同一個託管,不同的域/文件夾它工作相同沒有+ ... ...無論如何感謝您的幫助。

這是我最後的工作代碼:

RewriteEngine On 
Options +FollowSymLinks 
RewriteRule ^photos.+$ thumbs.php [L,QSA] 

RewriteRule ^[a-zA-Z0-9\-_]*$ index.php [L,QSA] 
RewriteRule ^[a-zA-Z0-9\-_]+\.html$ index.php [L,QSA] 
-1

您的htaccess的順序,應該是...

RewriteEngine On 
<Files .*> 
Order allow,deny 
    Allow from all 
</Files> 
Options FollowSymLinks 
RewriteRule ^photos.+$ thumbs.php [L,QSA] 

RewriteRule ^[a-zA-Z0-9\-_]*$ index.php [L,QSA] 
RewriteRule ^[a-zA-Z0-9\-_]+\.html$ index.php [L,QSA] 
+0

謝謝@toopay,我只是試過這個,但沒有成功。同樣的錯誤。 – Czakalli

+0

-1:只要你的'RewriteEngine On'在你的'RewriteRule'之前,它可以在任何地方。它對其他指令沒有影響。 –

1

無法會有問題<Files .*>?我認爲這是一個通配符模式,所以你應該只使用<Files *>

+0

這不是問題,我根本不需要這個,只是爲了確保它不是阻止文件的htacces。 – Czakalli