【发布时间】: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