我正在尝试重定向第三级域名(sub.domain1.com),但前提是它与子目录匹配:
http://sub.domain.com/somefolder
然后将其重定向到另一个域(domain2.com),但需要删除/ somefolder部分,所以这样说:
http://sub.domain.com/somefolder/about
重定向会像这样读:
http://domain.com/about
这是我到目前为止所尝试过的,似乎无法正常工作:
RewriteEngine On
RewriteCond %{HTTP_HOST} (^|\.)sub\.domain1\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/somefolder$ [NC]
RewriteRule ^/somefolder/$ https://domain2.com/$ [R=301,L]
有人可以告诉我我做错了什么吗?我开始理解htaccess了,但它仍然像巫毒一样......
注意:两个域都指向同一台服务器,但domain1.com指向根网站文件夹,domain2.com指向/ webroot / somefolder,因此它是根目录内的子目录。
答案 0 :(得分:2)
您需要在重定向中的正则表达式和反向引用中添加分组:
RewriteEngine On
RewriteCond %{HTTP_HOST} (^|\.)sub\.domain1\.com$ [NC]
RewriteRule ^somefolder/(.*)$ https://domain2.com/$1 [R=301,L]
并且您不需要条件来检查请求URI,因为您已经在规则的正则表达式中执行此操作。