我想创建一个可用于任何(通配符)子域的简单页面。
例如,您访问hello.domain2.com,该页面将回显子域“hello”的名称。 URL也必须保留“hello.domain2.com”。这不应该太难,但由于我的主机在1根中有多个域,我将不得不调整我的.htaccess文件。
当我查看htaccess时,主持人已自动制定以下规则:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteCond %{REQUEST_URI} !^/domain1.com/
RewriteRule (.*) /domain1.com/$1 [last]
RewriteCond %{HTTP_HOST} ^domain1.com$
RewriteCond %{REQUEST_URI} !^/domain1.com/
RewriteRule (.*) /domain1.com/$1 [last]
RewriteCond %{HTTP_HOST} ^www.domain2.com$
RewriteCond %{REQUEST_URI} !^/domain2.com/
RewriteRule (.*) /domain2.com/$1 [last]
RewriteCond %{HTTP_HOST} ^domain2.com$
RewriteCond %{REQUEST_URI} !^/domain2.com/
RewriteRule (.*) /domain2.com/$1 [last]
RewriteCond %{HTTP_HOST} ^www.domain3.com$
RewriteCond %{REQUEST_URI} !^/domain3.com/
RewriteRule (.*) /domain3.com/$1 [last]
RewriteCond %{HTTP_HOST} ^domain3.com$
RewriteCond %{REQUEST_URI} !^/domain3.com/
RewriteRule (.*) /domain3.com/$1 [last]
到目前为止,我已将服务器配置为接受domain2.com的任何子域,但我的主机将所有子域重定向到我的根文件夹。
如何将通配符子域转到/domain2.com?
答案 0 :(得分:0)
您可以将domain2规则块替换为:
RewriteCond %{HTTP_HOST} ^([\w-]+).domain2.com$
RewriteCond %{REQUEST_URI} !^/domain2.com/
RewriteRule ^(.*)$ /domain2.com/$1?subdomain=%1 [LAST,QSA]
([\w-]+)
是服务器名称的通配符,%1
可以在以后的RewriteRules中用作占位符。 (第二个RewriteCond也可以变成一个断言..)