0

我正在寻求在我的 htaccess 文件中设置一些重定向规则的帮助。我已将站点切换到在 Codeigniter 上运行,基本上所有以 .php 结尾的页面,现在只需删除该结尾,即www.mysite.com/foo/bar.php现在www.mysite.com/foo/bar

我试过像这样列出重定向:

Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar
Redirect 301 http://mysite.com/foo/bar/bar.php http://mysite.com/foo/bar/bar
Redirect 301 http://mysite.com/foo/bar/foo.php http://mysite.com/foo/bar/foo

等(大约需要 12 条规则)。奇怪的是,它适用于第一条规则,但不适用于其他规则?我没有正确列出它们吗?我读过的所有内容都告诉我这就是它的写作方式。那么我做错了什么?

可能相关的其他信息:

我的 htaccess 文件已经包含以下代码(用于从 url 中删除 'index.php'):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

不确定这是在重写之前还是之后放置是否重要?此外,有问题的网站是一个插件域。我不完全确定这些重写是否应该放在主站点公用文件夹中的 .htaccess 文件中,还是放在插件域的子目录中?(我都试过了,结果一样)。

请帮忙!提前致谢。

4

1 回答 1

6

抱歉,我刚刚解决了这个问题。我从每条规则中删除了基本 URL,现在它可以工作了。IE:

Redirect 301 /foo/bar.php /foo/bar

代替:

Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar

不完全确定为什么...需要阅读。

于 2013-10-27T12:49:59.133 回答