Mod_rewrite 在 https 上给出 403 禁止

Mod_rewrite 在 https 上给出 403 禁止

我正在为我的客户开发一个 CMS/框架,并且刚刚实现了一个 PHP 脚本,该脚本检测当前加载的“应用程序”是否需要 HTTPS,如果需要,则重定向到 HTTPS 等效项。

同时,我还使用 mod_rewrite 来实现友好的 URL,效果很好。但是,当脚本转到 HTTPS 时,mod_rewrite 似乎不再起作用,我收到标准的 Apache“访问被禁止”消息。

这是在 localhost 开发服务器上(使用 XAMPP),没有安装 SSL 证书(实际服务器上会有)。需要说明的是,我并没有尝试通过 mod_rewrite 强制使用 HTTPS(90% 的搜索结果似乎都是这样),只是想让我的友好 URL 能够正常工作。

编辑:访问“根”地址时也会发生这种情况(https://localhost/cms/) 它将默认为索引页。

这是我的.htaccess:

# Protect files.
<FilesMatch "(\.(xml|html|cache))$">
  Order allow,deny
</FilesMatch>

# Disable directory listings.
Options -Indexes

# Follow symbolic links.
Options +FollowSymLinks

# Error document.
ErrorDocument 404 /index.php

# Rewrite URLs.
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]
</IfModule>

任何帮助都将不胜感激。谢谢 :)

答案1

问题似乎在于 Apache/XAMPP 上的 SSL 有第二个单独的 DocumentRoot 配置。通过将“httpd-ssl.conf”中的 DocumentRoot 值设置为与我的“httpd.conf”文件中的值相同,解决了此问题。现在一切正常!

相关内容