我有一个问题: 我想设置PHP和htaccess来创建动态子域。我无法弄清楚如何。 目前我的网址如下所示:
www.exemple.com/index.php?subdomain=mike&component=content&id=26&title=people-love-apps
我需要它看起来像这样:
www.mike.exemple.com/content/26/people-love-apps.html
我知道可以做到,但我不知道如何解决这个问题。 使用$ _GET []函数读取URL中的参数对我来说非常重要。
问题是我网站上的用户自动创建了自己的网站并获得了免费域名(子域名)。这应该是自动的。
谢谢!
答案 0 :(得分:15)
您无法使用.htaccess
您需要将apache虚拟主机配置为接受多个域的请求
请参阅Apache documentation - Using Name Based Virtual Hosts
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com *.example.com
DocumentRoot /www/domain
</VirtualHost>
添加通配符子域*.example.com
,您的PHP应用程序将收到example.com
下任何域的所有请求,即garbage.example.com
,busted.example.com
,llama.example.com
等
Creating Wildcard Sub Domain Using Apache VirtualHost
Multiple Domains to One Virtual Host | Wildcard Host (shared hosting)?
Apache default virtual host for multiple domains
此时,您的应用程序必须确定子域的有效性,并显示未知潜艇的相应错误。
从那里,解析mike
。
答案 1 :(得分:3)
OF COURSE您可以使用htaccess解释动态子域。 以下规则将解决问题。
RewriteCond %{HTTP_HOST} www\.([^.]+)\.example\.com [NC]
RewriteRule ^/content/([0-9]+)/([a-zA-Z0-9_\-])\.html /index.php?subdomain=%1&component=content&id=$1&title=$2 [L]
所以任何人都要参加
www.mike.exemple.com/content/26/people-love-apps.html
会看到
的内容www.exemple.com/index.php?subdomain=mike&component=content&id=26&title=people-love-apps