好的,我已经做了相当多的搜索,但仍然找不到足够的东西来处理我的问题。
现在我有一条DNS记录,可以将所有其他子域重定向到我的服务器。我要问的是,example.mydomain.com
会返回HTTP/1.1 301
并重定向到mydomain.com
如果这已经被覆盖,我很抱歉,我找不到足够的具体内容。
答案 0 :(得分:16)
使用RewriteCond
匹配mydomain.com
以外的域名,然后301将其重定向:
RewriteEngine On
# If the domain (any domain) is not exactly mydomain.com...
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC]
RewriteRule (.*) http://mydomain.com/$1 [L,R=301,QSA]
您还可以更具体地查看mydomain.com
的子域。上面的那个匹配任何其他域。
# Match only subdomains of mydomain.com
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteRule (.*) http://mydomain.com/$1 [L,R=301,QSA]
答案 1 :(得分:1)
This article包含.htaccess和Mod_Rewrite,用于将除主要重定向之外的任何主干的请求重定向到主域。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]
答案 2 :(得分:0)
根据evan's blog,您可以使用通配符" *"配置您的ServerAlias。如果你把apache作为你的服务器端。在这种情况下,每次访问子域都将被重定向或路由到根域。
<Virtualhost *:80>
VirtualDocumentRoot "/path/to/your/workspace/%1/public"
ServerName vhosts.dev
ServerAlias *.dev
UseCanonicalName Off
<Directory "/path/to/your/workspace/*">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</Virtualhost>
答案 3 :(得分:0)
就我而言,我需要像foo.bar.com
&gt;这样的规则。 bar.com/page/foo
我在apache文档中找到了这个:
RewriteCond %{HTTP_HOST} ^(.+)\.bar\.com$ [NC]
RewriteCond %{HTTP_HOST} !www.bar.com$ [NC]
RewriteRule ^(.*)$ http://bar.com/page/%1/$1 [L,R=301]