好的......我的网站上有以下网址:
http://my_domain.net/w/mRD3nKkM
我网站根目录中的重写是:
RewriteRule ^([w])/(\w+)$ res/$1/response.php?id=$2 [L]
简单的东西,是一种享受。现在,我想重定向任何未加密的网址流量通过https,如下所示:
https://my_domain.net/w/mRD3nKkM
所以我将另一个.htaccess文件放在res/w/
文件夹中,包含以下内容:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} ^/response.php$
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^(.*)$ https://my_domain.net/w/$1 [R,L]
对我来说,这应该有效,但事实并非如此。
要清楚,我有以下URL重写工作:
http://my_domain.net/w/mRD3nKkM
我希望它看起来像这样:
https://my_domain.net/w/mRD3nKkM
由于
答案 0 :(得分:1)
在进行内部转发之前,您应该处理http => https
。以下应该适合你:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^w/.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC]
RewriteRule ^(w)/(\w+)/?$ res/$1/response.php?id=$2 [L,NC]