好的,我已经进行了大量搜索,但仍然找不到足够具体的内容来解决我的问题。
现在我有一个 DNS 记录,将所有其他子域重定向到我的服务器。我要问的是什么会example.mydomain.com
返回HTTP/1.1 301
并重定向到mydomain.com
如果这已被涵盖,我很抱歉,我只是找不到足够具体的内容。
好的,我已经进行了大量搜索,但仍然找不到足够具体的内容来解决我的问题。
现在我有一个 DNS 记录,将所有其他子域重定向到我的服务器。我要问的是什么会example.mydomain.com
返回HTTP/1.1 301
并重定向到mydomain.com
如果这已被涵盖,我很抱歉,我只是找不到足够具体的内容。
使用 a来匹配除301RewriteCond
以外的域并重定向它们:mydomain.com
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]
本文涵盖 .htacces 和 ModRewrite 以将向主域以外的任何域发出的任何请求重定向到主域。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]
在我的情况下,我需要像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]
根据evan 的博客,如果您将 apache 作为服务器端,则可以使用通配符“*”配置您的 ServerAlias。在这种情况下,对子域的每次访问都将被重定向或路由到根域。
<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>