我正在尝试将一个URL重定向到https,将所有其他URL重定向到http ex:如果我想访问example.com的登录页面,它应该重定向到https://example.com/login,如果我想访问除登录之外的任何页面,它们应该被重定向到http://example.com/any-other-page . 当前.htaccess代码:
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule !^(login) http://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
DirectoryIndex index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
这工作正常 . 登录以外的所有URL都重定向到http . 但是,如果我将以下代码添加到重定向登录页面,则会将其重定向到index.php
RewriteCond %{HTTPS} !=on
RewriteRule (login) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
我想要的只是登录页面应重定向到https . 但这不会发生 .
提前致谢 .
1 回答
您可以使用
.htaccess
文件中的以下规则执行此操作:第一组规则检查是HTTPs关闭目录
/login/
如果它关闭,那么它将强制它到HTTPs .第二组规则检查HTTP是否打开,如果它打开,那么它将关闭除
/login/
目录之外的所有内容 .确保清除缓存 before ,你测试它 .
注意:
我不确定为什么你不希望一切都是HTTP?...它会使一个更安全的网站,并允许你使用HSTS .