我必须重新命名URL的一部分,这将影响数十个网页:
http://www.example.com/old/web-page到http://www.example.com/new/web-page
到目前为止,我有:
RewriteRule old/(.*) http://www.example.com/new/$1 [R=301,L]
但我读到"重写规则"可能会发生冲突,我在.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>
所以,我有两个问题:重写规则正确吗;我会经历某种冲突吗?
将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>