2017-09-01 146 views
0

我认为我的配置有误,或者Apache配置错误。找不到页面会重定向到404页面 - 不会发出404代码

如果你访问这个页面:

http://www.rgraph.net/blog/new-line-chart-trace-effect-using-the-clip-canvas-method.html

它重定向到404页面,显示404错误页面的地址栏是这个地址:

https://www.rgraph.net/404.html

我敢肯定,这些Apache指令是应该责备的,因为如果你转到页面的HTTPS版本,它应该像它应该那样工作(显示404页面,同时在地址栏中保留原始地址)。就像这样:

https://www.rgraph.net/blog/new-line-chart-trace-effect-using-the-clip-canvas-method.html

这里的Apache指令,我认为是错误的:

RewriteCond %{HTTP_HOST} ^www.rgraph.net$ 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

它的作品如预期存在的地址。例如:

http://www.rgraph.net/blog/index.html

即正确处理重定向到页面的HTTPS版本。

回答

0

我解决了它通过改变处理一切,但HTML文件,然后PHP(解析我的服务器上的HTML文件)处理这些文件的重定向。所以这个现在可以正确地显示了404的消息,同时仍保留在地址栏中的地址:

http://www.rgraph.net/blog/new-line-chart-trace-effect-using-the-clip-canvas-method.html

下面是我现在使用修改Apache的配置:

RewriteCond %{HTTP_HOST} ^www.rgraph.net$ 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !(\.html)$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]