【发布时间】:2015-03-20 06:55:30
【问题描述】:
我需要一些有关 URL 重写的帮助。
我只需要通过 SSL 处理 1 个动态页面(登录),所有其他页面都需要重定向到 HTTP。
所以这里是我的 .htaccess 文件:443 虚拟主机:
RewriteEngine on
RewriteRule ^signin$ https://www.page.com/?s=signin [L,NC]
RewriteCond %{REQUEST_URI} !^\/(signin)+ [NC]
RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [R=302,L]
发生的情况是,https://www.page.com/signin 通过 302 重定向 重定向到 http://www.page.com/?s=signin
我做错了什么?
【问题讨论】:
-
为什么只有你的登录页面https?那不是默认的目的吗?使用 https 很好,但请确保您正确使用它。
-
我认为你应该重新考虑推理。登录应该是 HTTPS,但如果您的服务器可以处理,登录页面也应该如此。对于大多数流量场景,额外的负载是最小的。为什么要安全登录然后停止使用 HTTPS?
-
搜索引擎优化相关的东西......我们只需要一些页面是安全的
-
您还需要在第一条规则上使用
[R]标志。虽然我认为这不会完全解决你的问题。另外,请小心像这样重定向。很容易泄露通过 https 页面设置的会话信息或 cookie,然后通过 http 可用。
标签: php apache .htaccess mod-rewrite ssl