Php htaccess是否将子域重定向到特定页面?
我需要将所有子域重定向到特定页面,而不实际更改URL,因为我将根据URL中的子域在该特定页面上显示不同的内容 假设我的站点位于testdomain.com/site1/ 我希望所有子域,如xyz.testdomain.com/site1/甚至xyz.testdomain.com,都被重定向到 然后需要加载浏览器,但URL仍然是xyz.testdomain.com 这样做的目的是,有人可以访问abc.testdomain.com或xyz.testdomain.com,两者都会将用户带到testdomain.com/site1/index.php/test.php,然后在test.php上,我有一些代码可以获取URL,如果URL是abc.testdomain.com,它会显示某些内容,然而,如果子域是xyz.testdomain.com,它将显示不同的内容Php htaccess是否将子域重定向到特定页面?,php,.htaccess,Php,.htaccess,我需要将所有子域重定向到特定页面,而不实际更改URL,因为我将根据URL中的子域在该特定页面上显示不同的内容 假设我的站点位于testdomain.com/site1/ 我希望所有子域,如xyz.testdomain.com/site1/甚至xyz.testdomain.com,都被重定向到 然后需要加载浏览器,但URL仍然是xyz.testdomain.com 这样做的目的是,有人可以访问abc.testdomain.com或xyz.testdomain.com,两者都会将用户带到testdo
这是我在htaccess中可以做的事情吗?如果是这样的话,怎么做?使用
mod\u rewrite
您可以一起解决这个问题
# Step 1: If the user went to example.com or www.example.com
# then we don't want to redirect them. (S=1 says skip the next rule)
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com
RewriteRule ^ - [S=1]
# Step 2: Anything else is redirected to our catcher script.
# Option 1: keeps the path they went to, but discards the domain
# i.e. xyz.example.com/abc/def.txt => /var/www/cgi-bin/abc/def.txt
RewriteRule ^/?(.*) /var/www/cgi-bin/$1 [QSA,L]
# Or Option 2: take all requests to the same file
# i.e. xyz.example.com/abc/def.txt => /var/www/cgi-bin/myfile.php
RewriteRule ^ /var/www/cgi-bin/myfile.php [QSA,L]
QSA
告诉它转发查询字符串,L
告诉它停止寻找更多重定向(这不是绝对必要的,但如果你有很多这样的事情发生,有时会有帮助)
您还可以将变量作为查询参数传递给脚本,QSA
标志确保它们不会替换原始值
# xyz.example.com/abc/def.txt => /var/www/cgi-bin/myfile.php?host=xyz.example.com&path=/abc/def.txt
RewriteRule ^/?(.*) /var/www/cgi-bin/myfile.php?host=%{HTTP_HOST}&path=/$1 [QSA,L]
这意味着您不必担心找出请求来自脚本内部的位置(我不确定这实际上可能是不可能的)。相反,您可以将其作为普通参数读取(它也可以像普通参数一样进行黑客攻击;请确保对其进行清理)。这是一个副本。我就知道。@ColeJohnson有这样一个: