.htaccess使用模式匹配的自定义URL转发规则

时间:2014-07-08 15:52:43

标签: regex apache .htaccess mod-rewrite

我一直试图(没有成功)在.htaccess中实现以下逻辑:

www.domain.com/aa/重定向到www 2 .domain.com / aa /
www.domain.com/bb/重定向到www 3 .domain.com / bb /
www.domain.com/cc/重定向到www 4 .domain.com / cc /
www.domain.com/dd/重定向到www 4 .domain.com / dd /
www.domain.com/ee/重定向到www 4 .domain.com / ee /

.htaccess规则还需要保留URL中的所有目录/页面名称:

www.domain.com/aa/collectionA/productB
重定向到
WWW的 2 .domain.com / AA / collectionA /产品B

www.domain.com/bb/collectionC/productD
重定向到
WWW的 3 .domain.com / BB / collectionC / productD

www.domain.com/cc/collectionD/productE
重定向到
WWW的 4 .domain.com / CC / collectionD / productE


任何解决方案都是最受欢迎的!谢谢。

1 个答案:

答案 0 :(得分:0)

将此代码放在DOCUMENT_ROOT/.htaccess的{​​{1}}文件中:

domain.com

将此代码放在RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] RewriteRule ^aa(/.*)?$ http://www2.domain.com%{REQUEST_URI} [NC,NE,R=301,L] RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] RewriteRule ^bb(/.*)?$ http://www3.domain.com%{REQUEST_URI} [NC,NE,R=301,L] /cc/.htaccess/dd/.htaccess中:

/ee/.htaccess

更新:根据评论,您可以在每个域的root .htaccess中使用此规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^ http://www4.domain.com%{REQUEST_URI} [NC,NE,R=301,L]