我有这个htaccess:
RewriteBase /
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/my
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/my
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
DirectoryIndex index.php index.cgi index.html
ErrorDocument 401 /errors/401.php
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php
#### PERSISTENT CONTENT ####
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ zyro/$1 [L,QSA]
我想知道如何保持此代码的工作并添加HTTP-HTTPS重定向,任何帮助表示赞赏。谢谢
答案 0 :(得分:1)
试试这个。添加到.htaccess
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 1 :(得分:0)
如果您拥有SSL证书并且已正确安装,则可以使用https协议。大多数网站使用http协议作为默认协议来处理所有信息。您可以通过在要进行重定向的文件夹(例如root)中创建或修改“.htaccess”文件来强制您的网站使用https协议。
请将其添加到.htaccess文件
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
<强>解释强>
我们在上面的代码中使用了三个命令:RewriteEngine,RewriteCond和RewriteRule。 “RewriteEngine On”告诉Apache我们将使用mod_rewrite。关闭“RewriteCond%{HTTPS}”,检查https协议是否已在使用中。如果使用https协议,那么最后一行(RewriteRule)将不适用。最后一行“RewriteRule(。*)https://% {HTTP_HOST}%{REQUEST_URI}”告诉服务器只将第一部分(http://)重写为(https://)。