URL重写以前重写的URL - htaccess

时间:2013-09-03 15:42:33

标签: .htaccess mod-rewrite url-rewriting

好的......我的网站上有以下网址:

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

由于

1 个答案:

答案 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]