我想在我的网站上将所有domain.com重定向到www.domain.com
和
所有不是www.domain.com的子域名,例如xyz.domain.com/abc重写(不是重定向,因为它仍然会在浏览器上显示xyz.domain.com/abc)到www.domain.com/ page.php文件ID = XYZ&安培;?PARAM = ABC
目前我有这个:
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]
RewriteCond %{HTTP_HOST} !^(www\.)?[^.]+\.domain\.com.*$
RewriteRule (.*) http://www.domain.com/hosted_form.php?id=$1 [L]
成功将domain.com重定向到www.domain.com,但显示找不到mno.domain.com/efg的服务器。
答案 0 :(得分:1)
RewriteCond %{HTTP_HOST} ^([a-z.]+)?domain.com$ [NC]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule .? http://www.%domain.com%{REQUEST_URI} [R=301,L]
答案 1 :(得分:0)
除了使用非www网址解决您的问题的萨达姆阿布哥达解决方案之外,您还必须启用通配符子域以避免任何子域出现“服务器未找到”问题。
如果您使用的是Apache,请修改您的httpd.conf配置文件以包含通配符行,如下所示:
NameVirtualHost ?.?.?.?
<VirtualHost ?.?.?.?>
DocumentRoot /www/subdomain
ServerName www.domain.tld
ServerAlias *.domain.tld
</VirtualHost>