【问题标题】:multiple proxy RewriteRules in .htaccess.htaccess 中的多个代理 RewriteRules
【发布时间】:2016-07-18 23:01:00
【问题描述】:

我有一个托管在 GitHub Pages (http://user.github.io/repo/) 上的静态页面和一个托管的注册域 (mydom.com)。

我想在mydom.com 上设置.htaccess,所以所有请求都通过代理重定向到GitHub 页面(在地址栏中保留mydom.com)。首先我尝试了:

RewriteCond %{HTTP_HOST} mydom\.com$ [NC]
RewriteRule ^(.*)$ http://user.github.io/repo/$1 [P,L,NE]

它适用于大多数请求,除了根 http://mydom.com/,GitHub 返回 404 明确说明它需要索引文件。如果我明确指定 mydom.com/index.html 它可以工作。奇怪的是,如果我用重定向标志[R] 替换代理标志[P],那么根请求就可以正常工作。 (不明白为什么)

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

 RewriteCond %{REQUEST_URI} ^$
 RewriteRule ^$ http://user.github.io/repo/index.html [P,L,NE]

但是这两个规则并没有像预期的那样一起工作。 这就是奇怪的部分出现的地方。 如果我不理会根规则,则根请求会按预期重定向到user.github.io/repo/index.html,但不会获取其余资源(/css/*/js/*)。明白了。但是,如果我同时设置这两个规则,那么根规则将停止工作(根请求返回相同的 GitHub 404)。其他所有内容都通过代理重定向而没有问题。

为什么会这样?我该如何克服这个问题?

【问题讨论】:

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


    【解决方案1】:

    但是.htaccess 在 github 页面上不起作用。如果你想在你的仓库中设置一个自定义域,你必须关注github documentation instructions

    【讨论】:

    • 我在虚拟主机上设置.htaccess,而不是在 GitHub 页面上。抱歉,造成混乱
    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多