2

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

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

我希望我的内部 URL 像:

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

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

我怎样才能做到这一点?

4

2 回答 2

4

这应该做你想要的:

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

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

于 2009-07-15T18:39:55.017 回答
3
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com
RewriteRule ^([^/]*)$ http://example.com/?name=%1&type=$1 [R,L]

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

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

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

于 2009-07-16T10:31:19.953 回答