Php 使用.htaccess重定向除www以外的虚拟子域
我已经在使用http.d驱动(通过301重定向)所有非www流量到该站点的www版本。例如,example.com重定向到www.example.com 这很好用 我现在想允许用户设置虚拟子域。因此,如果有人访问bob.example.com,我希望mod_rewrite能够真正为页面www.example.com/page.php?user=bob提供服务 由于我所有的谷歌历史记录都是为该网站的www版本建立索引的,我不想失去它,所以我希望www被排除在外Php 使用.htaccess重定向除www以外的虚拟子域,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我已经在使用http.d驱动(通过301重定向)所有非www流量到该站点的www版本。例如,example.com重定向到www.example.com 这很好用 我现在想允许用户设置虚拟子域。因此,如果有人访问bob.example.com,我希望mod_rewrite能够真正为页面www.example.com/page.php?user=bob提供服务 由于我所有的谷歌历史记录都是为该网站的www版本建立索引的,我不想失去它,所以我希望www被排除在外 感谢您的帮助。您可以在文档\u RO
感谢您的帮助。您可以在
文档\u ROOT/.htaccess
文件中使用此规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.example\.com$ [NC]
RewriteRule ^ page.php?user=%1 [L,QSA]
老实说,我不想给他们一个完整的子域下的网站-基本上,只有一个页面。因此file.php不应该存在。如果设置了bob.example.com,只需显示page.php?user=bob。否,重定向将更改浏览器中的url。正确的mod_重写应该让用户在浏览器中看到他们的url,同时默默地提供正确的url。经典的例子是:
RewriteEngine on
RewriteRule^red.html$blue.html
用户在red.html中键入,但看到blue.html的内容,这一点都不明智。但是只有在不使用http://...
在目标URI中。bob.example.com
和www.example.com
的DocumentRoot
值是否指向同一目录?是。我将虚拟通配符域设置为将其全部指向服务器上的同一目录。是的,但我希望它是动态的。bob.example.com、john.example.com、fred.example.com-分别重定向到page.php?user=bob、?user=john、?user=fred。但是,我不想破坏www.example.com.Ah,太好了。此外,如果用户根本没有输入子域(即example.com),它应该正常工作(这是一个301重定向到www.example.com),对吗?是的,这是对的,这个规则将不匹配www.example.com
或example.com
,因此www
添加规则将像以前一样工作。似乎不工作。积垢。也许我需要再次检查apache http.d设置,这在我的apache上是有效的。要测试将R
标记添加到RewriteRule
as:RewriteRule^page.php?用户=%1[L,QSA,R]