2017-10-06 160 views
1

我在代理IPv6請求地址時遇到了問題。使用IPv6 IP地址的重寫規則不起作用

上的.htaccess/apache2.conf,我知道了:

RewriteRule (.*) http://18.4.15.8:80/path/$1 [P,L]

它工作正常,因爲它是一個IPv4地址。 但是,它不工作:

RewriteRule (.*) http://[27:ec:20:22:15::d3]:80/path/$1 [P,L]

爲什麼?

錯誤日誌:

代理錯誤

您的瀏覽器發送的請求,該服務器無法理解。 代理服務器無法處理請求GET /index.html。

原因:URI不能被解析:http://%5b27:ec:20:22:15::d3%5d:80/path/index.html

回答

1

這是因爲[ & ]。 Thay通常不被允許在URL中,因此服務器將其轉義爲%b5%5d。爲了防止這種使用NE標誌在你重寫規則:

RewriteRule (.*) http://[27:ec:20:22:15::d3]:80/path/$1 [NE,P,L] 

https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne

+0

這種簡單的解決方案解決了我的問題和IPv6一直很好。我在谷歌上搜索過每一頁,但沒有發現任何內容。這是一個非常簡單的解決方案。謝謝。問候 – vdTOG