你爲端口443
單獨設置了VirtualHost
嗎?
如果是嘗試在ssl.conf
/VirtualHost
指令由ssl
設置除去從VirtualHost
指令的__default__
。
應該看看哪些是這樣的:
所有我會建議你在你的
VirtualHost
添加此的
<VirtualHost _default_:443>
第一。記錄活動或mod_rewrite
。這對於調試更有幫助,並且更高的RewriteLogLevel
更適合調試。
RewriteEngine On
RewriteLog "/path/to/your/rewrite.log"
RewriteLogLevel 3
從RewriteLogLevel Docs:
要禁用改寫簡單的設置級別爲0。這樣的行爲的日誌記錄禁用所有重寫操作日誌。 使用較高的Level值會顯着降低Apache服務器的速度!僅在調試時使用大於2的級別的重寫日誌文件!
試試這個您的問題:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/?axis2/(?:.*)$ [NC]
RewriteRule ^(.*)(/?axis2/)(.*)$ https://$1$2$3 [L,R=301]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}%{QUERY_STRING} [L,QSA,R=301]
如果%{REQUEST_URI}
沒有啓動,並與/axis2
或axis2/
或/axis2/
或axis2
結束它會將您的URI重定向到https
並停止任何進一步的規則重寫。
否則,僅此將執行:
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}%{QUERY_STRING} [L,R=301]
R = 301意味着一個永久重定向。如果僅指定了R,則將完成臨時重定向,即302。
你試過從'^/axis2 $'中刪除開始的斜槓'/',所以看起來像'^ axis2 $' –