我有一个.htaccess文件:的.htaccess被串联规则
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z-]+)\/([0-9]*)\/?$ ler.php?categoria=$1&id=$2
这是工作http://www.domain.com/frases/13571/
的一点是,我需要这个规则后,所有HTTP重定向到HTTPS已经应用。
所以我写这篇文章:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z-]+)\/([0-9]*)\/?$ ler.php?categoria=$1&id=$2
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
但不工作像我应该。当我执行HTTP请求时,我得到这个: https://www.domain.com/frases/13571/?categoria=frases&id=13571
什么是正确的代码,只是改变协议而不修改其他部分的网址? 我认为我的代码在第一条规则中执行了2个请求,并且正在生成这个错误的url。
只是切换规则的顺序 - 如果HTTP先进行了内部重写,那么外部重写为HTTPS - 应该已经足够了。 – CBroe 2014-09-25 19:10:19
如上 - 你需要做你的301重定向到https第一个 – 2014-09-25 19:11:28
@CBroe这会产生一个缓慢的服务器行为。在第3行和HTTPS条件之前,我还有30个像这样的规则。 – 2014-09-25 19:18:41