2016-05-28 48 views
0

我已將apache http webserver 2.2.29配置爲代理。它的功能是將傳入的請求重定向到後端服務器。以下是流程。Mod_rewrite在apache中不工作

客戶端使用url https://iproxy.company.co.uk:8443/cis1發送請求。 Apache實例正在偵聽iproxy.company.co.uk:8443。此請求必須發送到url https://i.company.co.uk:8443上的後端服務器。爲了達到這個目的,我使用了mod_rewrite。下面是在httpd-alias.conf文件中配置的。

`Listen iproxy.company.uk:8443 

ServerName  iproxy.company.uk:8443 

    DocumentRoot /app/ 
    RewriteEngine On 
    RewriteRule (.*)$ https://i.company.co.uk:8443$1 [R=301,L] 
    ProxyPassReverse "/products/widget/" "http://product.example.com/widget/" 
    RewriteLog /app/instance1/logs/rewrite.log 
    RewriteLogLevel 5 

    ErrorLog "/app/instance1/logs/error_log" 
    TransferLog "/app/instance1//logs/access_log" 

    SSLEngine on 
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite HIGH:!MEDIUM:!aNULL:!MD5:!RC4 
    SSLCertificateFile "/app/certificates/star.cer" 
    SSLCertificateKeyFile "/app/certificates/star.key" 
    SSLCertificateChainFile "/app/certificates/rootCAChain.pem" 
    CustomLog "/app/instance1/logs/ssl_request_log" \ 
     "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
    </VirtualHost>` 

我也配置了重寫洛至5我越來越低於改寫記錄的水平。

我打以下命令來檢查重定向工作

curl -k https://iproxy.company.co.uk:8443/cis1

獲得以下輸出

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <ahref="http://i.company.co.uk:8443/cis1">here</a>.</p> </body></html>

我還可以看到下面印在改寫日誌。

redirect to https://i.company.co.uk:8443/ci1 [REDIRECT/301]

因此我假設重定向工作正常。但是,它不是..因爲服務器沒有收到任何請求?我在配置中做錯了什麼?

更新: 我已經更新了RewriteRule指令,在最後添加了[P],它工作正常,問題得到解決。

RewriteRule (.*)$ https://sit-alfresco.rpmi.co.uk:443$1 [P]

回答

0

您發送的301響應返回給瀏覽器,然後將作出這樣的要求。

這並不代表所有的代理!

瀏覽器是否有權訪問i.company.co.uk(在這種情況下,您爲什麼需要代理?)還是隻能由服務器訪問(在這種情況下,重寫將不起作用)?

如果你真的想代理這個,那麼你應該使用的mod_proxy具有以下配置:

ProxyPass/https://i.company.co.uk:8443/ 
+0

威爾的ProxyPass能夠保持URI相同傳入請求我期待URI來對每個不同請求 – user2607367

+0

上述配置將在https://iproxy.company.co.uk:8443/cis1上顯示頁面https://i.company.co.uk:8443/cis1的內容。對於其他頁面也是如此。所以基本上它映射主機。請注意,該網頁上的任何絕對引用都將保留爲i.company.co.uk(儘管也可以繞過此網站)。如果這不是你想要的,那麼我認爲如果你澄清你的問題是最好的。 –

+0

它現在正在爲我工​​作。謝謝很多。我已經用答案更新了問題 – user2607367