0

我在一个网站 www(dot)shopingmart(dot)com 上工作,基本上是一个分类网站,我需要解决我现在面临的一个问题,我花了很多时间但无法解决。我正在努力实现。

如果用户访问 newyork.example.com 或 ohio.example.com

这两个城市都指向同一个网站意味着 www.example.com

但显示与城市相关的内容(如 OLX Done)

我创建了通配符域 *.example.com 使用 A 记录我还创建了两个子域

newyork.example.com and 

ohio.example.com 

还创建 .htaccess 以将流量重定向到 index.php

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

然后解析

$_SERVER['HTTP_HOST'] to obtain subdomain 

但是当我输入 newyork.example.com 它会给我 500 内部错误

请帮助并分享一些想法我无法解决这个问题

此致

4

1 回答 1

0

您应该使用通配符创建一个虚拟主机,以接受来自特定域的所有子域。

这是我制作的系统的配置示例,基本上可以满足您的需求:

NameVirtualHost *:80
<VirtualHost *:80>
     DocumentRoot /www/your_site
     ServerName example.com
     ServerAlias *.example.com
</VirtualHost>

这使得 Apache 接收特定域的所有子域(别名)。

您应该首先在没有重写规则的情况下尝试这种方法,并且只在通配符起作用后插入规则。

编辑:

关于子域下的资产路径变化,重写规则需要指向文档根目录下的index.php:

RewriteRule . %{DOCUMENT_ROOT}/index.php [L]
于 2013-10-27T19:42:33.160 回答