.htaccess阻止访问该网站

时间:2011-07-23 12:14:47

标签: php .htaccess

我遇到阻止php脚本访问的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文件在同一主机上的不同域(文件夹)上正常工作。

3 个答案:

答案 0 :(得分:1)

<Files .*>有问题吗?我认为这是一个通配符模式,因此您应该只使用<Files *>

答案 1 :(得分: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]

答案 2 :(得分:-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]