我想写一个.htaccess文件,用于将我的子域和URL的最后一个变量重定向到新位置。这就是我想要做的事情:
HTTP(S)://abc.example.com/books
我希望我的内部网址如下:
我已经让子域重定向工作,但我无法在URL的最后部分使用变量做子域。
我该如何做到这一点?
答案 0 :(得分:4)
这应该做你想要的:
RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]
“%1”表示使用上面RewriteCond中的第一个捕获组。
答案 1 :(得分:2)
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com
RewriteRule ^([^/]*)$ http://example.com/?name=%1&type=$1 [R,L]
"%1"
表示使用RewriteCond中的第一个捕获组,而$1
是规则本身中的第一个捕获组。
在您的示例中,%1
将为“abc”,$1
将为“book”
[^/]*
表示“匹配每个字符不是斜线,0或更多次”