使用mod_rewrite重定向旧的URL与Codeigniter

时间:2012-05-06 00:40:36

标签: codeigniter mod-rewrite url-rewriting

我正在使用codeigniter框架重新开发网站。

当我们上线时,我们希望确保将一些旧网址重定向到新网站上的相应网页。

所以我把我认为正确的规则放到现有的htaccess文件中,高于CodeIgniter应用的其他规则。

然而,他们没有受到影响。任何人都可以提出我在这里缺少的东西吗?

# pickup links pointing to the old site structure
RewriteRule ^(faq|contact)\.php$ /info/ [R=301]
RewriteRule ^registration\.php$ /register/ [R=301]
RewriteRule ^update_details\.php$ /change/ [R=301]

# Removes access to the system folder by users.
RewriteCond %{REQUEST_URI} ^_system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

# This snippet prevents user access to the application folder
# Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^myapp.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

# This snippet re-routes everything through index.php, unless
# it's being sent to resources
RewriteCond $1 !^(index\.php|resources)
RewriteRule ^(.*)$ index.php/$1 

1 个答案:

答案 0 :(得分:0)

尝试在[R] 301标志=>中添加[L] ast标志。 [L,R = 301]确保不会应用其他规则,并且,为了确保,尝试重定向到完整的URL,并且更确定您没有删除任何内容,请将RewriteEngine On添加到顶部并设置RewriteBase。

让您的第一行看起来像

RewriteEngine On
RewriteBase /
RewriteRule ^(faq|contact)\.php$ http://www.YOURDOMAIN.XYZ/info/ [L,R=301]

并在调用例如faq页面时检查浏览器中的URL是否发生了变化。