网站https重定向不起作用,也需要.php排除


Site https Redirect not working, also need .php exclusion

我的目标是使用 htaccess 应用 EV SSL 将我网站上所有.HTML页面重定向到 https,但是,我在 DW CS6 中创建了该站点,并且大多数(超过 1,000 个)页面都是.php的,不能是 https,因为它们都是来自 EMC、VMware 等的联合内容源。我还为所有.php页面建立了数十个深度链接。

通过对这里的所有页面进行广泛搜索,似乎提供了最佳和最合乎逻辑的解决方案。

第 1 步。首先将整个网站重定向到 https

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^'.php$ [NC]
RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

然后

第 2 步。

RewriteCond %{HTTP_HOST} !^'.php$ [NC]
RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

问题是我从来没有测试过步骤 2,因为步骤 1 不起作用,网站仍然 http://www.erpsaa.com/但当然,如果您只是添加"s"https://www.erpsaa.com/这是我的目标,它会完美运行,如果您点击任何深层链接.php页面,它也可以工作并直接返回 http。但是,这会将整个网站踢回http。我有我认为是步骤 2 的部分解决方案.父.php链接受到影响,因为通过整个站点重定向(手动),4 .php父项被销毁,SSL 给出了"混合内容问题"。我可以设置它,以便没有一个链接是父.php,但使所有链接都成为深层链接并达到相同的目的。但是,我仍然遇到一个问题,即我在这里发现的被不止一个人确认的确切方法是将整个网站从http重定向到https的确切方法。也许就我而言,整个网站的 301 代码更好,.php页面的创可贴,其深层链接总是强制 https 到 http。

提前感谢您的任何帮助。

不能使用%{HTTP_HOST}变量(仅用于匹配域)匹配php扩展名。

您可以使用:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} Off
RewriteRule !'.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,NC,L]