Mod rewrite 友好URL不工作-已启用modrewrite。有什么好处?

Mod rewrite 友好URL不工作-已启用modrewrite。有什么好处?,mod-rewrite,silverstripe,Mod Rewrite,Silverstripe,我正在尝试安装SilverStripe,在安装过程中,它返回一个错误,表示友好链接不起作用。但是,mod_rewrite已启用,AllowOverride设置为All。我在专用服务器上使用CentOS Linux,Webmin作为cp(是的,我知道……不是我的选择)。步骤1。在.htaccess文件中放入一些垃圾,看看web服务器是否给您出了错误。步骤1。在.htaccess文件中放入一些垃圾,然后查看web服务器是否给了您一个错误。这里的要点是,如果服务器正在运行Apache,则要确定SS安装

我正在尝试安装SilverStripe,在安装过程中,它返回一个错误,表示友好链接不起作用。但是,mod_rewrite已启用,AllowOverride设置为All。我在专用服务器上使用CentOS Linux,Webmin作为cp(是的,我知道……不是我的选择)。

步骤1。在.htaccess文件中放入一些垃圾,看看web服务器是否给您出了错误。

步骤1。在.htaccess文件中放入一些垃圾,然后查看web服务器是否给了您一个错误。

这里的要点是,如果服务器正在运行Apache,则要确定SS安装程序生成的.htaccess文件是否正在被读取。如果您仍然有问题,请尝试在SS IRC频道上询问。

这里的要点是,如果服务器正在运行Apache,则要确定SS安装程序生成的.htaccess文件是否正在被读取。如果您仍然有问题,请尝试在SS IRC频道上询问。

安装程序应该尽可能地进行设置,即使您收到错误消息

这个问题回答起来有点棘手,因为问题可能存在于许多不同的地方,但我已经尝试在下面列出一个故障排除指南

注意:下面的许多链接被故意破坏,因为堆栈溢出认为我可能是垃圾邮件发送者

假设您的站点位于http://www.example.com,请尝试访问http://www.example.com/dev/build-您应该会看到一个标题为“Environment Builder(以前的db/build)”的页面。如果可以,那么重写就没有问题,安装程序错误地向您发送了该消息

如果这提供了404,请尝试http:/www.example.com/sapphire/main.php?url=dev/build-这将访问相同的功能,但绕过mod_重写。如果这给了您标题“Environment Builder(以前的db/build)”,而之前的URL没有,那么您就有mod_rewrite的问题,而不是其他问题

  • 检查.htaccess文件的内容。它应该看起来像,但可能有
    RewriteBase
  • 尝试将一些垃圾文本(例如“asdfsahjadsfasdf”)放入.htaccess文件并保存。打开你的网站。它会给你一个500的错误吗?如果没有,则您的
    AllowOverride All
    设置不起作用。检查是否已将其设置在正确的位置。记住-它需要在Apache配置文件中,而不是
    .htaccess
    中。如果您无法访问相关的配置文件,您可能需要请ISP帮助您回答此问题
  • 如果这还不能揭示问题所在,我们将不得不修改重写规则,看看是否能够探索到底发生了什么。尝试更改此行:

    RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
    
    为此(将重写规则转换为重定向规则):

    再次访问http:/www.example.com/dev/build它是否重定向到任何地方?如果没有,那么mod_rewrite就不起作用了。它应该重定向到http:/www.example.com/sapphire/main.php?url=dev/build。它是否正在重定向到其他地方?例如,是否在
    ?url=
    参数中插入了额外的垃圾?如果在子目录中运行SilverStripe,有时会发生这种情况。在这种情况下,检查
    RewriteBase
    设置是否设置在该子目录中。类似于
    RewriteBase/mysubdir


  • 如果你仍然无法让友好的URL正常工作,那么恭喜你——你发现了一个非常糟糕的边缘案例!将按照上述步骤发现的内容的详细信息发布到www.SilverStripe.org上的SilverStripe IRC频道或论坛。

    即使您收到错误消息,安装程序也应该尽可能地进行设置

    这个问题回答起来有点棘手,因为问题可能存在于许多不同的地方,但我已经尝试在下面列出一个故障排除指南

    注意:下面的许多链接被故意破坏,因为堆栈溢出认为我可能是垃圾邮件发送者

    假设您的站点位于http://www.example.com,请尝试访问http://www.example.com/dev/build-您应该会看到一个标题为“Environment Builder(以前的db/build)”的页面。如果可以,那么重写就没有问题,安装程序错误地向您发送了该消息

    如果这提供了404,请尝试http:/www.example.com/sapphire/main.php?url=dev/build-这将访问相同的功能,但绕过mod_重写。如果这给了您标题“Environment Builder(以前的db/build)”,而之前的URL没有,那么您就有mod_rewrite的问题,而不是其他问题

  • 检查.htaccess文件的内容。它应该看起来像,但可能有
    RewriteBase
  • 尝试将一些垃圾文本(例如“asdfsahjadsfasdf”)放入.htaccess文件并保存。打开你的网站。它会给你一个500的错误吗?如果没有,则您的
    AllowOverride All
    设置不起作用。检查是否已将其设置在正确的位置。记住-它需要在Apache配置文件中,而不是
    .htaccess
    中。如果您无法访问相关的配置文件,您可能需要请ISP帮助您回答此问题
  • 如果这还不能揭示问题所在,我们将不得不修改重写规则,看看是否能够探索到底发生了什么。尝试更改此行:

    RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
    
    为此(将重写规则转换为重定向规则):

    再次访问http:/www.example.com/dev/build它是否重定向到任何地方?如果没有,那么mod_rewrite就不起作用了。它应该重定向到http:/www.example.com/sapphire/main.php?url=dev/build。它是否正在重定向到其他地方?例如,是否在
    ?url=
    参数中插入了额外的垃圾?如果在子目录中运行SilverStripe,有时会发生这种情况。在这种情况下,检查
    RewriteBase
    设置是否设置为