2014-10-07 136 views
1

我不得不重新命名的URL,这是会影响到几十个网页的一部分:重写规则条件重定向

http://www.example.com/old/web-pagehttp://www.example.com/new/web-page

到目前为止,我有:

RewriteRule old/(.*) http://www.example.com/new/$1 [R=301,L] 

但我读过RewriteRule can clash,我使用在.htaccess其中:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 

所以,我有两个问题:RewriteRule是否正确;我会遇到某种冲突吗?

回答

1

将您301规则略低于RewriteEngine On行:

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteRule old(/.*)?$ /new$1 [R=301,L,NC] 

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
</IfModule> 
+0

感谢您的及时回复。正如你可以想象的,我还有其他事情要做(首先改变实际的URL结构),但如果一切正常,我会投票并接受你的答案。 – 2014-10-07 15:33:34

+0

确定如果您遇到任何使用这些规则的问题,请告诉我们。 – anubhava 2014-10-07 15:37:03