好吧,我已經做了大量的搜索,但仍找不到足以處理我的問題的具體內容。將所有通配符子域重定向到根域
現在我有一個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