这是我的htaccess代码:
RewriteOptions inherit
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
AddDefaultCharset utf-8
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9A-Za-z]{12})(\/.+|\.html?|$) /cgi-bin/index_dl.cgi?op=download1&id=$1&fname=$2 [L]
RewriteRule ^ot:(.*) /cgi-bin/index_dl.cgi?op=download1&otid=$1 [L,B]
目前它正在将所有内容重定向到SSL。但是我想要它,以便当文件名符合这个标准时
RewriteRule ^([0-9A-Za-z]{12})(\/.+|\.html?|$) /cgi-bin/index_dl.cgi?op=download1&id=$1&fname=$2 [L]
它只需要允许非SSL
我用Google搜索并用Google搜索,但我无法弄清楚如何做到这一点。
感谢任何帮助:)
答案 0 :(得分:0)
在执行重定向的规则中,只需添加排除条件:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/([0-9A-Za-z]{12})(\/.+|\.html?|$)
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
或者您可以将其与规则的模式结合使用:
RewriteCond %{HTTPS} off
RewriteRule !^([0-9A-Za-z]{12})(\/.+|\.html?|$) https://www.domain.com%{REQUEST_URI} [R=301,L]
编辑:
要将该模式的SSL请求重定向到非SSL,请在另一个重定向规则下面添加此项:
RewriteCond %{HTTPS} on
RewriteRule ^([0-9A-Za-z]{12})(\/.+|\.html?|$) https://www.domain.com%{REQUEST_URI} [R=301,L]