【发布时间】:2018-03-12 16:59:29
【问题描述】:
出于特殊原因,我在父网站中托管了一个子网站,并希望为该子网站使用域别名。为清楚起见,我们将这两个域称为 parent.org 和 child.org。
子网站位于:parent.org/child
由于 child.org 是域别名,它也位于:child.org/child
我想构建重定向,将任何请求路由到 child.org 或 parent.org/child 到 child.org/child
搜索论坛,我尝试了很多事情,虽然这似乎最接近我的目标:
RewriteCond %{HTTP_HOST} ^(www.)?child\.org$ [NC]
RewriteCond %{REQUEST_URI} !^/child/.*$ [NC]
RewriteRule ^(.*)$ http://child.org/child/$1 [R=302,L,NS]
RewriteCond %{HTTP_HOST} ^(www.)?parent\.org/child$ [NC]
RewriteRule ^(.*)$ http://child.org/child/$1 [R=302,L,NS]
这并不像希望的那样工作,导致 child.org/child/child/child/etc.
我在这里错过了什么?
附录: 为了帮助澄清我的目标,对于任何一个域,如果“/child”不是 URL 的第一段,我想使用 parent.org。如果“/child”不是 URL 的第一段,我想使用 child.org。所以:
Parent setup:
parent.org/foo -> parent.org/foo
parent.org/child/foo -> child.org/child/foo
Child setup:
child.org -> child.org/child
child.org/foo -> parent.org/foo
child.org/child/foo -> child.org/child/foo
【问题讨论】:
-
所以请求,child.org/whatever,如果不是孩子,它应该被重定向到 parent.org/whatever 对吗?
-
没错。有点可笑,我知道。
标签: regex .htaccess redirect mod-rewrite