.htaccess中的多个代理RewriteRules

时间:2016-07-17 23:09:01

标签: .htaccess mod-rewrite url-rewriting github-pages mod-proxy

我有一个在GitHub页面(mydom.com)上托管的静态页面和一个托管(.htaccess)的注册域。

我想在mydom.com上设置mydom.com,因此所有请求都会通过代理重定向到GitHub页面(以便在地址栏中保留RewriteCond %{HTTP_HOST} mydom\.com$ [NC] RewriteRule ^(.*)$ http://user.github.io/repo/$1 [P,L,NE] )。首先我试过了:

http://mydom.com/

它适用于大多数请求,除了根mydom.com/index.html,GitHub明确返回404,说明它需要索引文件。如果我明确指定[P]则可行。奇怪的是,如果我用重定向标志[R]替换代理标志 RewriteCond %{REQUEST_URI} ^$ RewriteRule ^$ http://user.github.io/repo/index.html [P,L,NE] ,那么根请求工作正常。 (不要理解为什么)

当然,我已经为root请求添加了一条规则:

user.github.io/repo/index.html

但这两条规则并没有像预期的那样协同工作。 这就是怪异部分出现的地方。 如果我单独保留root规则,则root请求会按预期重定向到/css/*,但不会获取其余资源(/js/*,{{1}})。了解。但是如果我将两个规则都放在一起,那么根规则就会停止工作(为root请求返回相同的GitHub 404)。其他所有内容都通过代理重定向,没有任何问题。

为什么会这样?我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:0)

但是.htaccess在github页面上不起作用。如果要在存储库中设置自定义域,则必须遵循github documentation instructions