Q:Rewrite规则错误

魔众题库系统 / 文档中心
文档中心
开发教程
安装常见问题

在安装过程中,伪静态错误是经常会出现的问题,可以根据以下几种方式进行排错:

如果确信伪静态规则无误,可以通过访问 http://你的域名/install/ping 来访问,如果页面结果为OK则表示伪静态配置成功。

基础准备工作

基础工作的准备可以让你更快的定位错误

  • 第一步,打开调试(配置 .env 文件中 APP_DEBUG=true),可以让错误显示在页面上,方便调试
  • 第二步,配置服务器的网站根目录为 /www/example.com/publicD:/wwwroot/example.com/public,这一步很多人搞错,需要配置到 /public 目录

Apache错误诊断

第一步,检测Apache是否支持mod_rewrite

在 Apache 的配置目录(通常为apache/conf/httpd.conf)中找到 rewrite_module 相关配置。

  • 如果未开启( 即 #LoadModule rewrite_module 前面有 # ),将前面的 # 号删除即可。
  • 如果没有查找到,则到 LoadModule 区域,在最后一行加入 LoadModule rewrite_module modules/mod_rewrite.so

完成以上操作后,重启Apache。

第二步,让apache服务器支持.htaccess

修改一下配置文件 httpd.conf ,用文本编辑器打开后,查找

Options FollowSymLinks
AllowOverride None

改为

Options FollowSymLinks
AllowOverride All

第三步,检查网站的 .htaccess 文件是否正确

部分软件配置时会覆盖 ModStart 默认的 .htaccess 文件,检查 public/.htaccess 文件是否为一下内容。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
QQ
微信
公众号
客服