子域名重定向不起作用

子域名重定向不起作用

因此,我想为每个客户端创建一个子域,例如:

user1.mydomain.com -> mydomain.com/users/user1

或者至少

user1.mydomain.com -> mydomain.com

我可以user1用 php 抓取该部分。不是重定向,而是 URL 重写。

我的问题是,这根本不起作用。这是我在文件中的当前配置.htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.mydomain\.com [NC]
RewriteCond %{QUERY_STRING} !^/users/
RewriteRule ^(.*)$ /index.php?/users/%2/$1

# CodeIgniter Rules
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我已经看到了很多关于这个问题的答案,但对我来说似乎没有什么用。我还更新了我的域区域文件:

*.mydomain.com.        A         000.000.000.000

当我输入类似内容时,我看到的user2.mydomain.com是我的托管账户的错误页面,而不是服务器错误。像往常一样,任何帮助都会非常感激,我已经尝试找出问题所在好几天了 :P

编辑:问题似乎更多地出在服务器配置(Apache)上。如果我输入任何子域名,它显示的是来自我的托管服务提供商服务器的页面,而不是服务器错误(如 500 等),只是一个页面。如果我在 URL 栏中输入我的网站 IP,显示的页面相同,它会转到我的托管服务提供商的默认页面。

感谢大家阅读。

答案1

您有权访问 Apache 服务器配置吗?

<VirtualHost>需要ServerAlias覆盖您的子域名,否则这将不起作用。

如果您愿意,您可以只提供子域中的内容而不进行重定向:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /path/to/docroot
    # existing config
</VirtualHost>

<VirtualHost *:80>
    ServerName subdomains.example.com
    VirtualDocumentRoot /path/to/docroot/users/%1
</VirtualHost>

相关内容