将特殊子域重写为特殊脚本并将所有子域重写为脚本
我无法为我的.htaccess文件创建脚本。将特殊子域重写为特殊脚本并将所有子域重写为脚本
我想下面重复写:
-
www.domain.tld -> domain.tld
(没问题) admin.domain.tld/(.*) -> domain.tld/?show=admin$1
-
(everyothersubdomain).domain.tld -> domain.tld/?show=everyothersubdomain
(我创建了一个通配符子域)
是任何人都擅长此道?几次尝试使用Error 500或简单地没有任何get参数的索引页(index.php只是print_r($ _ GET))后,我失败了。
谢谢
感谢@Death我想出了这个解决方案对自己说:
RewriteCond %{HTTP_HOST} ^(admin|special1|special2)\.domain\.tld$ [NC]
RewriteRule (.*) index.php?mode=%1 [L,NC,QSA]
RewriteCond %{HTTP_HOST} www\.domain\.tld [NC]
RewriteRule (.*) http://domain.tld/$1 [L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.tld$
RewriteRule (.*) index.php?show=%1 [L,NC,QSA]
我做了一些试验用的index.php,这仅仅是运行:
<?php print_r($_GET); ?>
并且每个测试运行都完美无缺!
只是一些测试结果:'admin.domain.tld - > Array([mode] => admin)'和'asdf.domain.tld - > Array([show] => asdf)' – Maddis 2012-03-06 05:02:51
我自己没有测试过,但它应该工作。
RewriteCond %{QUERY_STRING} show=(.*)
RewriteRule ^(index\.php|)$ http://%1.domain.tld [R=301,L]
RewriteRule ^(admin|special1|special2)\.php http://$1.domain.tld [R=301,L]
RewriteCond %{HTTP_HOST} ^(admin|special1|special2)\.domain\.tld$ [NC]
RewriteRule (.*) http://domain.tld/%1.php [L,NC,QSA]
RewriteCond %{HTTP_HOST} www\.domain\.tld [NC]
RewriteRule (.*) http://domain.tld/$1 [L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.tld$
RewriteRule (.*) http://domain.tld/?show=%1[L,NC,QSA]
如果用户在他的浏览器http://domain.tld/admin.php
,那么他将被重定向到http://admin.domain.tld
。但如果他输入http://admin.domain.tld
,他将不会被重定向到外部。让我知道如果这是你想要的。
您可能需要将'R = 301'标志添加到其他规则中。没有这个,重定向会在服务器端静静地发生。有了它,它会传回客户端,以便客户端浏览器知道重定向;它可以缓存它,并在将来自动执行 – TerryE 2012-03-05 12:15:22
嗯,这不完全是我正在寻找的,但一个好的开始 - 谢谢你。 我确实希望它是无声的。浏览器显示:'admin.domain.tld' - >服务器端:'domain.tld/admin.php'或者浏览器:'(anyotherdomain),我们可能会有点不确定,我会尝试做一个更好的例子: .domain.tld' - >服务器:'domain.tld/index.php?show =(anyotherdomain)' 所以我基本上只是想让这些域更加“容易理解”,所以没有丑陋的index.php ?show = XXXXX,但是一个XXXXX.domain.tld。但线索是,我想要一些特殊的脚本,我可以定义一些“保留”子域,例如。 admin.php – Maddis 2012-03-06 00:35:54
现在测试!!!!! – undone 2012-03-06 02:00:44
请显示您的尝试 – Gerben 2012-03-05 14:41:57