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