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