PHP路由功能失效,服务器返回500内部错误求助
排查PHP路由站点500内部错误的方案
查看Apache错误日志
服务器端Apache错误日志默认路径为/var/log/apache2/error.log,执行tail -f /var/log/apache2/error.log实时追踪日志内容,500错误的具体触发原因(如模块未启用、配置语法错误、代码报错等)会在这里明确显示。启用mod_rewrite模块
多数服务器默认未开启URL重写模块,执行sudo a2enmod rewrite启用模块,随后重启Apache服务:sudo systemctl restart apache2。确认site.conf目录权限配置
确保站点配置文件的<Directory>区块中设置AllowOverride All,否则.htaccess内的重写规则无法生效,示例配置如下:<Directory /var/www/你的站点根目录> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>修改配置后务必重启Apache。
校验.htaccess语法正确性
路由场景下的标准重写规则示例如下,对比你当前的.htaccess内容,排查是否存在语法错误(如符号遗漏、规则逻辑错误):RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]排查PHP版本兼容问题
本地PHPStorm内置服务器的PHP版本可能与服务器端不一致,部分高版本PHP语法在低版本环境下会报错。可在index.php开头添加以下代码强制显示PHP错误:error_reporting(E_ALL); ini_set('display_errors', 1);
内容的提问来源于stack exchange,提问作者Thevindu Kulasinghe
相关产品推荐
相关产品推荐

