【发布时间】:2023-04-10 23:58:01
【问题描述】:
我已经在使用 http.d 将所有非 www 流量(通过 301 重定向)驱动到网站的 www 版本。 IE。 example.com 重定向到 www.example.com。
这非常有效。
我现在想允许用户设置虚拟子域。因此,如果有人访问 bob.example.com,我希望 mod_rewrite 实际为页面 www.example.com/page.php?user=bob 提供服务。
由于我所有的 Google 历史记录都设置为索引网站的 www 版本,我不想丢失它,所以我希望排除 www。
感谢您的帮助。
【问题讨论】:
-
老实说,我不想在子域下给他们一个完整的站点——基本上,只有一页。所以 file.php 不应该存在。如果设置了 bob.example.com,只需显示 page.php?user=bob。
-
不,重定向会改变浏览器中的 url。正确的 mod_rewrite 应该让用户在浏览器中看到他们的 url,同时默默地提供正确的 url。经典的例子是:
RewriteEngine onRewriteRule ^red.html$ blue.html用户输入了 red.html,但看到了 blue.html 的内容——而且一点也不聪明。 -
但只有在目标 URI 中不使用
http://...更改 URL 中的域名时,才能进行重写。bob.example.com和www.example.com的DocumentRoot值是否指向同一个目录? -
是的。我设置了虚拟通配符域,将其全部定向到服务器上的同一目录。
标签: php apache .htaccess mod-rewrite