【发布时间】:2012-03-03 17:52:24
【问题描述】:
我一直在研究 htaccess 以及如何使用重写规则来为用户制作一种“假子域”。
到目前为止我有:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([a-z0-9-]+)/? http://$1.domain.com [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^([a-z]+)\.domain\.com$
RewriteRule ^$ index.php?user=%1
这将获取任何 /somthing 并将其设为子域,然后将子域值作为参数传递给以获取。
我希望现在能够使用实际参数,并使用“子域”中的额外“用户”参数正常传递它们 例如
fred.domain.com/index.php?page=1&sort=up
会给我 $_GET
['user'] = 'fred'
['page']= 1
['sort'] = up
但对于我的生活,我无法弄清楚如何做到这一点!当我添加任何其他参数时,我会丢失用户位
有什么帮助吗? =)
此外,任何有关 htaccess 的有用教程都会很好!因为我发现的所有人都没有真正解释每个位的作用以及为什么=\
提前致谢
【问题讨论】:
-
您可以为此使用环境变量。请参阅 apache 文档了解 mod_rewrite 如何设置或引用它们。此外,您可以在 PHP 脚本和
$_SERVERsuperglobal 中执行此操作。