【问题标题】:Mod-rewrite not working on Network Solutions serverMod-rewrite 在网络解决方案服务器上不起作用
【发布时间】:2012-06-08 00:47:14
【问题描述】:

我有一个需要 mod-rewrite 才能正常运行的网站,但它似乎无法在我们运行的 Network Solutions 共享服务器上运行。 Network Solutions 承诺已安装,但不会在不支付额外费用的情况下提供任何进一步的支持。

我在包含两个文件的以下文件夹中放置了一个简单的测试。第一个,“.htaccess”包含以下文本:

RewriteEngine On
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]

第二个是测试它的 PHP 脚本,可在此处获得: http://www.oceanhousefloridakeys.com/testmr/rewrite.php

我所看到的只是安装了 mod-rewrite(没有显示错误消息)但 rewriteRule 不起作用。任何人都可以看到为什么这个脚本不起作用......我可以做些什么来让它运行,或者网络解决方案没有说出全部真相?

【问题讨论】:

  • mod_rewrite 是否启用?您可以访问命令行吗?我相信您使用a2enmod rewrite 来启用它。另外,您是否知道在您的 Apache 配置中该目录的 AllowOverride 设置为 All?
  • @Travesty3:“是否启用了 mod_rewrite?”这是个大问题…… Network Solutions 发誓它已启用,但由于上面的这个简单测试不起作用,我并不完全相信它们。不幸的是,我无法访问命令行,因为我在共享服务器上,所以我无法给你更多反馈。
  • 您是否尝试过在正则表达式中使用前导斜杠?喜欢^/link([^/]*).html$?当它在子文件夹中时:您是否相应地设置了RewriteBase?
  • @vstm:是的!添加 RewriteBase 解决了这个问题。请张贴这个作为这个问题的答案。仅供参考...添加前导斜杠没有帮助。

标签: php .htaccess mod-rewrite


【解决方案1】:

看起来您的脚本位于子目录中。在这种情况下,最好将RewriteBase 设置为正确的路径(在任何RewriteRule 之前):

RewriteEngine On
RewriteBase /testmr/
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2016-10-31
    • 2015-04-25
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多