这个.htaccess出了什么问题?之前工作得很好,但不是现在

时间:2015-10-18 01:08:23

标签: php apache .htaccess mod-rewrite

我在旧服务器上工作,不幸的是不得不切换到一个必须从头开始重新制作的新服务器,现在这个.htaccess无效,它会向其目录中的任何请求抛出错误500

Options -MultiViews
RewriteEngine on

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+admin\.php\?page=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ admin.php?page=$1 [L,QSA]

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

<Files global.php>
Order Allow,Deny
Deny from all
</Files>

Options All -Indexes

目标是向www.domain.tld/directory/log发送请求www.domain.tld/directory/admin.php?page=log 并且还阻止查看.htaccess文件本身或文件global.php 作为旁注,我尝试将其直接写入apache2.conf作为目录设置,但这导致apache2服务无法启动。

1 个答案:

答案 0 :(得分:0)

要确切地知道问题是什么,您必须检查apache error_log文件

对于cPanel服务器,您可以尝试以下命令:

tail /usr/local/apache/logs/error_log

现在.htaccess最受欢迎的500错误是使用Options

许多服务器配置出于安全原因不允许在.htaccess中执行Options(覆盖配置,启用Perl执行......等)

大多数服务器已经有Options -MultiViewsOptions All -Indexes, 使用Options评论#行,您的网站应运行正常。