2014-10-07 130 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