我目前还使用htaccess代码设置了通配符子域。 这很棒
但现在我也希望用户能够去
subdomain.domain.com/settings/
或subdomain.domain.com/settings
我需要将第二个查询字符串传递给index.php
我怎么能这样做?
感谢。
RewriteCond %{HTTP_HOST} !^www.domain.com
RewriteCond %{HTTP_HOST} ^([^.]+).domain.com
RewriteRule ^$ /index.php?subdomain=%1 [L]
tagert url:/index.php?subdomain=%1&page=settings
“设置”将由用户输入的内容替换,可以是登录或注册或仪表板。这将是要去的页面。
答案 0 :(得分:1)
如果index.php
可以接受page
的空值,则只需更改您必须容纳的RewriteRule
一个,期待如果没有提供,$_GET['page']
将作为空字符串出现:
RewriteCond %{HTTP_HOST} !^www.domain.com
RewriteCond %{HTTP_HOST} ^([^.]+).domain.com
# Don't send index.php into a rewrite loop
RewriteCond %{REQUEST_FILENAME} !-f
# Capture page in $1, everything up to the first / or the end $
RewriteRule ^([^/]*)/?$ /index.php?subdomain=%1&page=$1 [L]
如果存在任何内容,模式([^/]*)
将匹配第一个/
以外的任何内容。 /?
允许使用可选的尾部斜杠。鉴于此模式,其中任何一个都匹配,但最后两个将导致空$_GET['page']
subdomain.example.com/settings
subdomain.example.com/settings/
subdomain.example.com/
subdomain.example.com