好的,所以除了在一个特定的页面上,我需要通过HTTPS
转发所有流量。这是我当前的.htaccess
代码:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
ErrorDocument 404 /404.html
Options -Indexes
所以基本上我需要通过HTTPS
BESIDES /r.php
& /l.php
& /c.php
页面,可以这样做吗?我尝试过一些研究,但发现太多了。
编辑: 这会有用吗?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/r.php$
RewriteCond %{REQUEST_URI} !^/c.php$
RewriteCond %{REQUEST_URI} !^/l.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 0 :(得分:1)
您可以在RewriteCond
告诉apache之上添加一个新的RewriteRule来按原样处理它而不再应用RewriteRules(L
说,匹配此规则后停止,(r|c|l)
是用于匹配r
OR c
OR l
)的正则表达式。
RewriteRule ^/?(r|c|l)\.php$ - [L]
有关详细信息,请参阅https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule。
答案 1 :(得分:1)
如果您可以使用安全连接,我们强烈建议
RewriteEngine On
RewriteCond %{HTTPS} off
#Add slash(es) before special characters to escape them as literals
RewriteCond %{REQUEST_URI} !^\/r\.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这样做是检查您的HTTPS标志是否已在服务器上设置,如果未设置且页面不是/r.php
则重定向安全HTTPS等效的页面。
编辑:
/r.php
实体需要通过使用反斜杠/
这些字符来转义.
和\
。
RewriteCond
行从安全连接标志检查中“转义”/r.php
页面引用,最好使用此处详述的正确服务器标志,而不是手动端口请求,因为安全/不安全标准的超文本协议端口可以是服务器上的 ANY 端口,并且TLS / HTTP端口为443/80等只是常规(而且根本不需要)。