你为端口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 $' –