我在尝试让我的网站将所有http请求重定向到https时遇到了一个小问题。然而,在我开始之前,我应该警告你,我对此很陌生,所以请表示怜悯;) 这是我的htcaccess文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://nordicraft.net/%{REQUEST_URI} [NC]
首先,我在共享主机上运行我的网站,第一次打开它时,第一个RewriteRule的所有内容都在文件中。我不知道-d和-f条件是什么意思或它们应该做什么,所以我没有触及它们。我添加的唯一内容是最后一次RewriteCond和RewriteRule。
现在,问题是,它只在访问主页面时按预期工作,即只需在地址栏中输入nordicraft.net即可。它按预期将我重定向到https版本。此外,如果我明确尝试访问index.php文件,它也会做同样的事情。但是,如果我尝试访问任何其他网站功能,例如论坛,则会将我重定向到https://${REQUESt_URI}
。就我而言,https://forum
。您可以在http://nordicraft.net实时查看该网站。
是什么导致了这个或可能的修复?谢谢!
答案 0 :(得分:1)
尝试:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://nordicraft.net%{REQUEST_URI} [NE,L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ /index.php [L]