0

我有一个域 www.example.com 和子域 test.example.com。当我调用 test.example.com 时,我需要将其重定向到 www.example.com/search/property/test_state 而不更改来自 test.example.com 的 url。所以 url 应该看起来像 test.example.com 而已。

我用 .htaccess 代码做到了这一点,例如,

RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} !^webmail\.example\.com
RewriteCond %{HTTP_HOST} !^m\.example\.com
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule  ^$ /search/property/%1_state [P]

现在,当我从 test.example.com/content/sell_your_home 等子域访问任何 url 时,它不应该将 url 更改为主域。目前,当我访问它时,它正在重定向到主域。有任何想法吗?

4

1 回答 1

0

如果测试子域与主域具有相同的服务器根(文档根),则不需要该P标志:

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} !^webmail\.example\.com
RewriteCond %{HTTP_HOST} !^m\.example\.com
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteRule  ^$ /search/property/%1_state/ [L]

否则,您需要完整的 URL:

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} !^webmail\.example\.com
RewriteCond %{HTTP_HOST} !^m\.example\.com
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteRule  ^$ http://www.example.com/search/property/%1_state/$1 [L,P]

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} !^webmail\.example\.com
RewriteCond %{HTTP_HOST} !^m\.example\.com
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteRule  ^(.*)$ http://www.example.com/$1 [L,P]
于 2013-10-17T13:57:25.063 回答