1

我正在使用一些以前在 apache2 上始终有效的重写指令,但现在尝试新的共享主机并且重写规则似乎没有得到应用。

我已将 .htaccess 文件简化为以下基本规则:

RewriteEngine On
Rewritebase /demo/

RewriteRule ^(.*)$ index.php/$1 [L]

如您所见,我想从根目录重写对演示文件夹中我的 index.php 文件的每个请求。

因此,像http://www.example.com/demo/albums/show/1这样的所有内容都应该由http://www.example.com/demo/index.php处理以进行标准 MVC 设置。(顺便说一句,我正在使用 CodeIgniter)

上面的指令导致 500 错误,所以我想可能是因为 1.3 和 2.x 之间可能存在一些语法差异。

经过一些跟踪和错误编辑后,我发现重写规则本身有问题,但我真的不明白为什么。

  • 关于为什么我的重写规则不起作用的任何想法?它以前在许多不同的服务器上做过。
  • 建议如何解决?

注意: mod_rewrite 确实有效,我已经写了一个小测试来确定。

4

3 回答 3

1

在你的位置,我可能会先查看 Apache 错误日志,然后尝试通过执行来消除一个移动部分

RewriteEngine On
RewriteRule ^/demo/index.php$ /demo/index.php [L]
RewriteRule ^/demo/(.*)$ /demo/index.php/$1 [L]

如果可行,我会尝试重新引入 RewriteBase。

于 2010-05-01T15:22:08.560 回答
1

你设置了:

Options +FollowSymLinks

……改写规则之前?如果FollowSymLinks禁用 mod_rewrite 将不起作用。

于 2010-05-01T16:40:38.897 回答
1
于 2010-05-02T19:05:02.563 回答