以下是.htaccess的一部分:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} =on
#RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteEngine on
#RewriteBase /~example/
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>当我删除RewriteBase前面的评论时,我就可以通过https://secure.myhost/~example/提供的共享SSL访问我的网站了。但是,当我尝试通过http://example.com使用不安全的方式访问它时,它会导致服务器错误
我的问题是:有没有办法让.htaccess有条件地考虑基于HTTPS或HTTP的RewriteBase?
发布于 2013-08-25 18:49:59
你的重写规则需要一些重构。使用以下代码替换您的代码:
Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /~example/
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule (?!webroot/)^(.*)$ webroot/$1 [L,NC]
</IfModule>https://stackoverflow.com/questions/18424113
复制相似问题