我正在尝试托管一个网站,其中的用户个人资料页面带有唯一的子域名,例如username.sitename.com。我想要一个Apache/VirtualHost解决方案,将* .sitename.com指向sitename.com/index.php,我可以在这里分类,哪个子域带有一个配置文件页面,哪个会显示404错误。如何将所有子域指向index.php
请帮我建立的.htaccess
我正在尝试托管一个网站,其中的用户个人资料页面带有唯一的子域名,例如username.sitename.com。我想要一个Apache/VirtualHost解决方案,将* .sitename.com指向sitename.com/index.php,我可以在这里分类,哪个子域带有一个配置文件页面,哪个会显示404错误。如何将所有子域指向index.php
请帮我建立的.htaccess
这是最好用在httpd.conf文件服务器级别(或包含的配置文件),301重定向做到这一点。而不是创建一个VirtualHost并使服务器回答并过滤每个域的.htaccess文件,您可以在VirtualHost本身中设置重定向。
您可以mod_rewrite
<VirtualHost *>
ServerName subdomain.example.com
RewriteEngine on
RewriteRule ^/(.*)$ http://example.com/index.php [L,R=301]
</VirtualHost>
<VirtualHost *>
ServerName subdomain2.example.com
RewriteEngine on
RewriteRule ^/(.*)$ http://example.com/404.php [L,R=301]
</VirtualHost>
做到这一点,或者如果你正在运行mod_alias您可以使用此:
<VirtualHost *>
ServerName subdomain.example.com
Redirect 301/http://example.com/index.php
</VirtualHost>
<VirtualHost *>
ServerName subdomain2.example.com
Redirect 301/http://example.com/404.php
</VirtualHost>
你只需要一个正确的虚拟主机设置。
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
[...]
</VirtualHost>
由于index.php位于DirectoryIndex中,因此会自动调用index.php,无论调用哪个域。通过$_SERVER['HTTP_HOST']
变量,您可以动态反应您对要求的主机的访问权限。
这不能用.htaccess文件来完成。 – 2013-04-28 05:47:25
Catchall DNS记录或现在什么? – 2013-04-28 05:49:08