如何编写重定向规则以将流量发送到子域?

时间:2014-09-25 12:34:56

标签: .htaccess mod-rewrite

我想将请求重定向到网址:

example.com/downloads

download.example.com/downloads

如何为.htaccess文件编写正则规则?

2 个答案:

答案 0 :(得分:0)

You don't actually need mod_rewrite to do this.除非您匹配模式而不仅仅是字符串,否则您也不需要正则表达式。

Redirect ^/downloads http://download.example.com/downloads

如果你需要匹配一个模式(即将每个子目录重定向到一个子域 - 对我来说听起来像个坏主意,但无论如何)那么你需要一个正则表达式,但你仍然没有&#39 ; t需要mod_rewrite

RedirectMatch ^/([^/+])(/.+)? http://$1.example.com/$1$2

这匹配紧跟在域之后的字符串,即" downloads" http://example.com/downloads/somefile的一部分,然后是请求的任何尾随部分,并构建一个URL以重定向到使用这两个部分。

答案 1 :(得分:0)

将此规则放在根目录中.htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^downloads(/.*)?$ http://download.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L,NC]