第一次在这里发帖。我对整个网络/服务器设置世界还很陌生,所以请多多包涵!
基本上,我有一个网络论坛,一段时间以来我一直在尝试在其上实现 HTTPS。而且它确实有效,例如,如果我打开https://example.com
地址栏,论坛就可以完美地运行。
但是,我的问题是,如果我只是example.com
在地址栏上输入,它会默认为 http 对应项,即http://example.com
。
我已经阅读了很多关于如何做到这一点的指南,并且我已经添加了.htaccess
重定向必要的规则(我认为)。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我认为这是重要的部分,我认为下面的部分是论坛软件自动生成的。
RewriteRule ^forum-([0-9]+)\.html$ forumdisplay.php?fid=$1 [L,QSA]
RewriteRule ^forum-([0-9]+)-page-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2 [L,QSA]
RewriteRule ^thread-([0-9]+)\.html$ showthread.php?tid=$1 [L,QSA]
RewriteRule ^thread-([0-9]+)-page-([0-9]+)\.html$ showthread.php?tid=$1&page=$2 [L,QSA]
RewriteRule ^thread-([0-9]+)-lastpost\.html$ showthread.php?tid=$1&action=lastpost [L,QSA]
RewriteRule ^thread-([0-9]+)-nextnewest\.html$ showthread.php?tid=$1&action=nextnewest [L,QSA]
RewriteRule ^thread-([0-9]+)-nextoldest\.html$ showthread.php?tid=$1&action=nextoldest [L,QSA]
RewriteRule ^thread-([0-9]+)-newpost\.html$ showthread.php?tid=$1&action=newpost [L,QSA]
RewriteRule ^thread-([0-9]+)-post-([0-9]+)\.html$ showthread.php?tid=$1&pid=$2 [L,QSA]
RewriteRule ^post-([0-9]+)\.html$ showthread.php?pid=$1 [L,QSA]
RewriteRule ^announcement-([0-9]+)\.html$ announcements.php?aid=$1 [L,QSA]
RewriteRule ^user-([0-9]+)\.html$ member.php?action=profile&uid=$1 [L,QSA]
RewriteRule ^calendar-([0-9]+)\.html$ calendar.php?calendar=$1 [L,QSA]
RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ calendar.php?calendar=$1&year=$2&month=$3 [L,QSA]
RewriteRule ^calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$ calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4 [L,QSA]
RewriteRule ^calendar-([0-9]+)-week-(n?[0-9]+)\.html$ calendar.php?action=weekview&calendar=$1&week=$2 [L,QSA]
RewriteRule ^event-([0-9]+)\.html$ calendar.php?action=event&eid=$1 [L,QSA]
<IfModule mod_env.c>
那么,有什么想法吗?这是域名主机配置的问题吗?非常感谢您的帮助。
答案1
将所有内容都放在 中的目的<IfModule mod_rewrite.c>
是为了在未加载 mod_rewrite 模块的情况下抑制错误。因此,您可以检查的第一件事是该模块是否已加载,因为如果没有,则任何重定向都无法正常工作。不过,在大多数 Apache 安装中,它都会被加载。
另一件需要检查的事情是 .htaccess 文件是否在您的 Apache 配置中启用,以及它们是否被赋予包含任意配置(例如您在那里添加的规则)的能力。在您的 Apache 配置中查找一个AllowOverride
语句。它应该设置为All
。您可能需要检查相关<Directory>
部分。
另一件需要检查的事情是 Apache 的错误日志,它有时可以揭示配置问题何时影响了某些东西。