我需要在我的网站上使用以下重定向:
RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3])
RewriteCond %{REQUEST_URI} !/2013/12
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ http://v2.name.com/$1/$2/$3 [NC,R=301]
然而,只有当我删除Wordpress放在我的中的代码时,它才起作用。htaccess(我尝试将其放在这段代码之前和之后,但没有成功):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
如果我永久删除它,会导致什么样的问题?有什么办法吗?
最合适的回答,由SO网友:Pat J 整理而成
添加[L]
标记到[NC,R=301]
件(即,[NC,R=301,L]
), 它告诉RewriteEngine,RewriteRule是RewriteCond
s、 显然解决了问题。
RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3])
RewriteCond %{REQUEST_URI} !/2013/12
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ http://v2.name.com/$1/$2/$3 [NC,R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
参考Apache
URL Rewriting Guide 和
mod_rewrite
documentation (尤其是
RewriteRule
)