Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用.htaccess重定向除www以外的虚拟子域_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 使用.htaccess重定向除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

我已经在使用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 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]