【问题标题】:htaccess subdomain redirct with last url parameterhtaccess 子域重定向与最后一个 url 参数
【发布时间】:2010-11-11 02:40:48
【问题描述】:

我想编写一个 .htaccess 文件,用于将我的子域和 URL 的最后一个变量重定向到新位置。这是我想做的:

http(s)://abc.example.com/books

我希望我的内部 URL 是这样的:

http://example.com/?name=abc&type=books

我已经让子域重定向工作,但我无法在 URL 的最后部分使用变量执行子域。

我怎样才能做到这一点?

【问题讨论】:

  • 习惯上,如果您的问题已通过以下答案之一解决,请勾选该答案旁边的标记。这有助于其他人知道您的问题已得到解决,并且您正在感谢回答的人。

标签: .htaccess redirect subdomain


【解决方案1】:

这应该做你想做的:

RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]

“%1”表示使用上述 RewriteCond 中的第一个捕获组。

【讨论】:

  • 感谢 Greg 的评论,但您能否进一步说明 url 的规则,例如 abc.example.com/books,我也想要变量“abc”和“books”。我想将它重定向到 profile.php
  • 那会做“abc”和“books”
  • 嘿,格雷格,你是伟大的人。我从很久以前就偶然发现了这个问题。就这样解决了。非常感谢
  • 有一个错字.. 正则表达式中的“%”而不是“$” :)
【解决方案2】:
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com
RewriteRule ^([^/]*)$ http://example.com/?name=%1&type=$1 [R,L]

"%1" 表示使用 RewriteCond 中的第一个捕获组,而 $1 是规则本身中的第一个捕获组。

在您的示例中,%1 将是“abc”,$1 将是“book”

[^/]* 表示“匹配每个字符不是斜线,0 次或更多次”

【讨论】:

  • 感谢您的解释,我的问题得到了解决,我得到了两个变量非常感谢。
猜你喜欢
  • 2016-09-20
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2012-05-08
  • 1970-01-01
相关资源
最近更新 更多