内部子域名到文件夹重定向

6
我想要动态创建文件夹,但使用mod_rewrite让它看起来像是动态创建子域名。例如:

使用PHP创建名为"john"的文件夹


www.example.com/john/

然后可以访问我放在其中的任何内容,网址为:
john.example.com

Thank you in advance,

Kris


嗨,我想做类似的事情,你成功了吗? - Satchel
我还没有把这个做好。我很快就会转换到 Plesk 系统,这将允许我更好地控制我的服务器。一旦我弄清楚了,我会在我的博客上发布教程,并用教程链接回答这个问题。 - Torez
1个回答

10

首先,您需要配置服务器以接受您域名 example.com 的任何子域,并将其重定向到您的虚拟主机,该虚拟主机也必须接受任何子域。之后,您可以使用以下规则将子域名内部重写为具有相同名称的文件夹:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteRule ^ %1%{REQUEST_URI} [L]

可能值得提一下外部地图来识别无效的子文件夹/子域名 :) - Aiden Bell
谢谢您的迅速回复。我真的不知道怎么做... 首先,您给我的mod_rewrite代码应该放在我的文件夹结构中的哪个位置与原始问题相关?其次,我应该如何配置我的服务器来接受任何子域名?正如您所看到的,我正在使用mod_rewrite的早期阶段,我需要一点帮助。谢谢Gumbo - Torez
考虑到您可能想在serverfault.com上提出问题。 - Gumbo
接受子域名(实际上只是主机名),该部分应放在您的DNS区域中。mod_rewrite规则应放在虚拟主机的Apache配置中,该配置还需要ServerAlias *.example.com。 - Steve Madsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接