.htaccess 使用codeigniter时重写URL
我正在使用以下代码删除codeigniter中的index.php-.htaccess 使用codeigniter时重写URL,.htaccess,mod-rewrite,codeigniter,url-rewriting,.htaccess,Mod Rewrite,Codeigniter,Url Rewriting,我正在使用以下代码删除codeigniter中的index.php- RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 我正在用codeigniter编写的新站点替换旧站点,因此我需要将一些旧URL重写为新站点。这对于单页来说很好,但是我在下面的重写中遇到了一个问题- RedirectMatch 301 ^/comments/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
我正在用codeigniter编写的新站点替换旧站点,因此我需要将一些旧URL重写为新站点。这对于单页来说很好,但是我在下面的重写中遇到了一个问题-
RedirectMatch 301 ^/comments/(.*)/$ /location/$1
从理论上讲,这将引导您:
到
因为我是通过重写来删除index.php的,我最终被引导到-
有人知道如何解决这个问题吗
谢谢 终于明白了,对于那些感兴趣的人,我不得不在我在第一篇文章中没有提到的重写条件中添加注释:
RewriteCond$1^(index\.php | media | images | css | js | comments | robots\.txt)
希望这可以帮助其他人。您不应该将mod_别名(
RedirectMatch
)和mod_重写混为一谈。请尝试此mod_重写规则:
RewriteRule ^comments/(.*)/$ /location/$1 [L,R=301]
现在,请确保将此规则置于其他规则之前。谢谢,我不太擅长URL重写。我想我不应该把这两者混在一起,但这是我能找到的唯一让它发挥作用的方法。