Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用codeigniter时重写URL_.htaccess_Mod Rewrite_Codeigniter_Url Rewriting - Fatal编程技术网

.htaccess 使用codeigniter时重写URL

.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/

我正在使用以下代码删除codeigniter中的index.php-

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重写。我想我不应该把这两者混在一起,但这是我能找到的唯一让它发挥作用的方法。