如何在htaccess中的子域名后添加斜杠和查询字符串?

时间:2013-12-30 03:42:13

标签: .htaccess mod-rewrite

我目前还使用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

“设置”将由用户输入的内容替换,可以是登录或注册或仪表板。这将是要去的页面。

1 个答案:

答案 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