我有两个域和一个有效的子域。 我怎么能做到这一点?
ex-ample.com » example.com www.example.com » example.com en.ex-ample.com » en.example.com en.example.com » en.example.com
我目前使用下面的.htaccess规则:
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
尝试了很多,但我能得到的最好的是一个redirect循环。 你可以帮我吗?
如果我已经正确理解你的请求,我认为一个典型的命名虚拟主机configuration会得到你想要的。 我不完全确定你的意思是“保存虚拟主机”。 如果这个解决scheme没有帮助,也许你可以详细说明你的请求。
无论如何,我想象的是这样的:
NameVirtualHost *:80 <VirtualHost *:80> ServerName example.com ServerAlias ex-ample.com www.example.com DocumentRoot /path/to/example.com </VirtualHost> <VirtualHost *:80> ServerName en.example.com ServerAlias en.ex-ample.com DocumentRoot /path/to/en.example.com </VirtualHost>
现在请求任何…
…将转到example.com VirtualHost,并请求…
…将转到en.example.com VirtualHost。
如果你正在寻找一个重写规则,试试这个:
# REWRITE en.ex-ample.com to en.example.com RewriteCond %{HTTP_HOST} ^en\.ex-ample\.com$ [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule (.*) http://en.example.com$1 [R=301,L] # REWRITE ANYTHING OTHER THAN 'example.com' and 'en.example.com' RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteCond %{HTTP_HOST} ^en\.example\.com$ [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule (.*) http://example.com$1 [R=301,L]
假设你有一个适用于所有适当域的虚拟主机。