使用 SSL 的某些页面上出现 404 错误
Posted
技术标签:
【中文标题】使用 SSL 的某些页面上出现 404 错误【英文标题】:404 Error on Certain Pages Using SSL 【发布时间】:2013-08-04 04:22:13 【问题描述】:我正在尝试在我的 wordpress 网站上启用 ssl,但遇到了一些困难。我已经通过 wordpress ssl 插件启用了 ssl admin(经过很好的审查),并且还需要 ssl 用于其他几个页面。管理面板与 https 配合得很好,主页和其他几个页面也是如此。然而,在其中许多页面上,即我使用我编写的 php 插件动态生成的页面,我收到 404 错误:
找不到
在此服务器上找不到请求的 URL /create/5。
Apache/2.2.22 (Ubuntu) 服务器位于 upsmart.com 端口 443
目前尚未奏效的方法包括:
我已经在服务器上启用了 mod-rewrite,我已经尝试将仪表板中的站点 URL 更改为明确为 https:// 并且我已经扫描了 php 以查找 http:// 的硬编码实例
真的在这个问题上摸不着头脑,所以任何想法都会受到赞赏。
作为参考,我在 Ubuntu 12.04 上使用 Apache。
更新! 我检查了我的 Apache 错误日志并得到以下消息:
文件不存在:/home/user/www/create
我看到后的反应是“当然不是。如果我想让它发送到 http://example.com/create/,为什么它会读为 ~/www/create?
【问题讨论】:
【参考方案1】:请允许我脸红一点;我对上述问题的更新让我可以猜测这个问题,但我会把它记下来以防其他人遇到问题。
我发现我只配置了一半的文件 /etc/apache2/sites-enabled/default-ssl。
文件开头如下:
ServerAdmin webmaster@localhost
DocumentRoot /home/sam/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/sam/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
问题是第二个 AllowOverride 需要从 none 更改为 all。让它看起来像这样。
ServerAdmin webmaster@localhost
DocumentRoot /home/sam/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/sam/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
请注意:这必须为 ssl 配置,即使您已为其他启用的站点(如 000-default)配置此设置。
【讨论】:
【参考方案2】:配置之间没有区别。
【讨论】:
以上是关于使用 SSL 的某些页面上出现 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
IIS 托管的 Web 应用程序可以在没有 www 的情况下使用 ssl 正常工作,使用 www 会出现 404 错误
端口 443 上的 SSL 错误,页面未显示并导致错误 404
Codeigniter - 设置 SSL 并收到 404 错误
服务器常见页面访问返回错误信息(404 500 400)表示啥意思