我有一個靜態頁面託管在GitHub頁面(http://user.github.io/repo/
)和一個註冊的域名與託管(mydom.com
)。多個代理重寫規則在.htaccess
我想在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
它的作品。奇怪的是,如果我用代理標誌[P]
替換爲重定向標誌[R]
,那麼根請求可以正常工作。 (不要爲什麼得到它)
當然,我已經添加了根請求的規則:
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',而不是在GitHub頁面上。對困惑感到抱歉 – nazikus