【发布时间】:2010-03-30 15:31:57
【问题描述】:
我已经有这段代码可以强制这些 URL 使用 HTTPS:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/my/?.*$
RewriteCond %{REQUEST_URI} !^/my/basket/add?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/login/?.*$
RewriteCond %{REQUEST_URI} ^/logout/?.*$
RewriteCond %{REQUEST_URI} ^/register/?.*$
RewriteCond %{REQUEST_URI} ^/newsletter/?.*$
RewriteCond %{REQUEST_URI} ^/reset-password/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这确实很好用,但我想做的是强制任何不符合上述条件的URL到HTTP,触发301。
我不想创建HTTP 页面列表并像上面的HTTPS 那样重定向它们。除非我以某种方式更改系统,否则安全页面 URL 将始终保持不变,但我可以在需要时更新它们。非安全页面可以由这里的一些销售团队动态创建/编辑,因此需要智能定位。
对我如何做到这一点有任何想法吗? 必须使用.htaccess 来完成,我一直通过在我们的 PHP 框架中处理它来实现这一点,但这会导致非常严重的性能问题以及我们的 Google 抓取问题。
干杯!
【问题讨论】: