.htcaccess规则无法正常工作

时间:2016-05-21 13:35:55

标签: .htaccess mod-rewrite

我在尝试让我的网站将所有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实时查看该网站。 是什么导致了这个或可能的修复?谢谢!

1 个答案:

答案 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]