我目前的htaccess是: -
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>
我想为https://www.example.com/abc/arg1/arg2
之类的网址添加规则htaccess应重定向到http://www.example.com/abc/arg1/arg2
对于这个https://www.example.com/abc/ *,它应该保留所有参数,重定向到非https格式。
答案 0 :(得分:0)
使用以下规则,清除缓存后进行检查。
RewriteCond %{REQUEST_URI} ^/abc/(.*) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
修改:请尝试使用以下规则,
RewriteCond %{REQUEST_URI} !^/abc/(.*) [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
在上述规则中,我们将https附加到所有不以abc/(.*)
开头的网址,您必须使用原始https规则所在的rewritecond
。
答案 1 :(得分:0)
如果您要将以abc/
开头的所有https请求重定向到http,则必须同时检查abc/
和HTTPS
RewriteCond %{HTTPS} on
RewriteRule ^abc/ http://www.example.com%{REQUEST_URI} [R,L]
如果一切正常,您可以将R
替换为R=301
(permanent redirect)。 从不使用R=301
进行测试。
答案 2 :(得分:0)
我不确定您是如何完成工作的,但是以下内容对您来说应该很合适。
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/abc [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]