Apache .htaccess https到http重定向与现有规则冲突

Apache .htaccess https到http重定向与现有规则冲突,apache,.htaccess,redirect,mod-rewrite,httpd.conf,Apache,.htaccess,Redirect,Mod Rewrite,Httpd.conf,目前,我们在.htaccess中有此规则 RewriteEngine on <br> RewriteCond %{REQUEST_URI} !^/site/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /site/$1 RewriteRule ^(/)?$ site/index [L] 但这个问题现在是url将显示站点子文件夹 我如何才能做到,

目前,我们在.htaccess中有此规则

RewriteEngine on <br>
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/$1
RewriteRule ^(/)?$ site/index [L]
但这个问题现在是url将显示站点子文件夹

我如何才能做到,如果用户这样做了

它将在站点子文件夹中找到temp.html并重定向到https,url将仅显示


谢谢

如果您分两次完成,总是将请求重定向到https,然后运行您的重写规则,比如:

RewriteCond %{HTTPS} off
#301 flag redirects instead of rewriting
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#leaving your original rules as is
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/$1
RewriteRule ^(/)?$ site/index [L]

这是我尝试的第一件事,但它不起作用。奇怪的是,它在我的mac上可以工作,但在AWS上不能与apache一起工作。这是RewriteCond%{HTTPS}上的规则重写引擎关闭RewriteRule^(.*)$HTTPS://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]RewriteCond%{REQUEST_URI}^/site/RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-根据chrome上的网络跟踪,重写规则^(.*)$/site/$1重写规则^(/)?$site/index[L]触发301 https重定向,但第二个块未获得调用。所以https没有响应(需要很长时间才能响应)它起作用了。我又检查了一遍,它成功了。因为443上的AWS块,它不能更早工作的原因。非常感谢
RewriteCond %{HTTPS} off
#301 flag redirects instead of rewriting
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#leaving your original rules as is
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/$1
RewriteRule ^(/)?$ site/index [L]