10

我有一个问题:我想设置 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 中的参数对我来说非常重要。

问题是我网站上的用户创建他们的网站并自动获得一个免费域(子域)。这应该是自动的。

谢谢!

4

2 回答 2

15

您不能使用.htaccess

您需要配置 apache 虚拟主机以接受多个域的请求

请参阅Apache 文档 - 使用基于名称的虚拟主机

<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等。

使用 Apache VirtualHost 创建通配符子域

多个域到一个虚拟主机 | 通配符主机(共享主机)?

多个域的 Apache 默认虚拟主机

此时,您的应用程序必须确定子域的有效性并为未知子域显示适当的错误。

从那里,解析mike.

于 2013-07-17T18:01:12.960 回答
3

当然,您可以使用 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 
于 2015-05-07T10:53:31.367 回答