Php 这有什么问题?htaccess?以前工作很好,但现在不行
我在一个旧的服务器上运行这个,不幸的是,我不得不切换到一个新的服务器,该服务器必须从头开始重新制作,现在这个。htaccess不工作,它向其目录中的任何请求抛出错误500Php 这有什么问题?htaccess?以前工作很好,但现在不行,php,apache,.htaccess,mod-rewrite,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 %{REQUE
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
选项-多视图
重新启动发动机
RewriteCond%{THE_REQUEST}^[A-Z]{3,}\s/+admin\.php\?page=([^\s&]+)[NC]
是否重写规则^/%1?[R=302,L]
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^([^/]+)/?$admin.php?页面=$1[L,QSA]
命令允许,拒绝
全盘否定
命令允许,拒绝
全盘否定
选项所有-索引
目标是将请求发送到www.domain.tld/directory/log
到www.domain.tld/directory/admin.php?page=log
并防止查看.htaccess
文件本身或文件global.php
作为旁注,我曾尝试将其作为目录设置直接写入
apache2.conf
,但这导致apache2服务无法启动。要确切了解问题所在,您必须检查apache错误日志文件
对于cPanel服务器,可以尝试以下命令:
tail /usr/local/apache/logs/error_log
现在.htaccess最常见的500错误是使用Options
line
出于安全原因,许多服务器配置不允许在.htaccess中执行选项
(覆盖配置、启用Perl执行等)
大多数服务器也已经有了选项-多视图
和选项-所有索引
,
用
#
注释选项
行,您的网站应该可以正常运行。注释掉了这两行,没有任何更改。错误日志显示:htaccess:Invalid command'RewriteEngine',可能拼写错误或由未包含在服务器配置中的模块定义
最有可能的情况是:由未包含在服务器配置中的模块定义–因此,如果mod_rewrite模块可用,请与服务器管理员联系(如果允许您使用的话)运行了sudoa2enmod rewrite
,它现在可以工作了,谢谢您的回答。