好吧,我已经做了大量的搜索,但仍找不到足以处理我的问题的具体内容。将所有通配符子域重定向到根域
现在我有一个DNS记录,将所有其他子域重定向到我的服务器。我在问什么是example.mydomain.com
返回HTTP/1.1 301
并重定向到mydomain.com
我很抱歉,如果这已被覆盖,我只是找不到足够的具体内容。
好吧,我已经做了大量的搜索,但仍找不到足以处理我的问题的具体内容。将所有通配符子域重定向到根域
现在我有一个DNS记录,将所有其他子域重定向到我的服务器。我在问什么是example.mydomain.com
返回HTTP/1.1 301
并重定向到mydomain.com
我很抱歉,如果这已被覆盖,我只是找不到足够的具体内容。
使用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]
This article占地面积.htacces和ModRewrite重定向重定向到主域的任何其他DOMIN比主之一提出的任何要求。
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !www.newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]
据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>
在我来说,我需要排除像foo.bar.com
>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]
这只能通过www。在开始? – JorgeLuisBorges 2014-07-15 10:40:03
@JorgeLuisBorges不仅www。 - 它也匹配_any subdomain_' subdomain.mydomain.com'或者任何非完全是'mydomain.com'的东西。顶部的例子还会将'mydomain.org'重定向到'mydomain.com',而底部只匹配子域名,并且只会将'subdomain.mydomain.com'重定向到'mydomain.com'。 – 2014-07-15 10:59:09
'RewriteRule(。*)http:/ /example.com/$1 [L,R = 301,QSA]产生traling斜线,例如'www.example.com'重定向到'example.com //'。 'RewriteRule(。*)http://example.com$1 [L,R = 301,QSA]'似乎是正确的。 – 2017-08-16 15:16:19