重写链接时在htaccess中强制使用HTTPS


Forcing HTTPS in htaccess while rewriting a link

我试图在重写htaccess中的链接时强制HTTPS,但运气不好…

这是我的原始代码。

RewriteRule ^Shopping-Cart/ shoppingCart/shoppingCart.php [L]

然后我添加了强制HTTPS的代码。

RewriteCond %{HTTPS} !=on
RewriteRule ^Shopping-Cart/ https://myserver.com/shoppingCart/shoppingCart.php [L]

但是当从链接加载myserver.com/Shopping-Cart/时,它总是以https://myserver.com/shoppingCart/shoppingCart.php结束

谁能给我点提示吗?

谢谢!

发生这种情况是因为我相信您无法隐藏这是一个安全链接的事实。即https。因此,即使Apache设置为只使用[L],它仍然会进行重定向,因为它正在更改为https协议。

你需要改变你的htaccess首先加载https,然后处理mod_rewrites。试,

RewriteEngine On
RewriteCond %{HTTPS} !^on
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^Shopping-Cart/? shoppingCart/shoppingCart.php [L]