如何为HTTPS配置503状态?

时间:2017-05-05 19:24:35

标签: css apache .htaccess http-status-code-503

我为我的网站设置了维护页面,因此当用户访问时,会返回503状态并重定向到自定义maintenance.php页面。所以它工作正常,只要我在我的搜索地址栏中手动输入URL,我就能在浏览器中清楚地看到它正确返回503。

问题是,如果有人点击来自推荐人的某些页面的链接,让我们说从Facebook,它会将它们重定向到maintenance.php页面,但由于某种原因,它无法加载CSS文件和与之关联的图像。 CSS文件和图像也突然返回503状态。

我的网站默认情况下也会将“http”页面重定向为使用“https”和“www”。如果我只在“http”中运行相同的页面,CSS文件和图像将加载。

然后,如果我在URL中没有“www”的“https”中运行该页面,该页面将加载CSS文件和图像。

所以只要“https”和“www”都在URL中,页面,它的'CSS文件及其'图像都将返回503.

我的.htaccess文件中配置了我的503状态:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.php
RewriteRule ^.*$ /maintenance.php [R=503,L]
ErrorDocument 503 /maintenance.php
Header Set Cache-Control "max-age=0, no-store"

服务器正在运行Apache。是否有我可以使用的配置,以确保当有人点击URL中包含“https”和“www”的链接时加载CSS文件和图像?

编辑:似乎有这个问题的网页也没有将其网址重定向到maintenance.php。尽管如此,它们仍会显示maintenance.php内容。

1 个答案:

答案 0 :(得分:1)

事实证明解决方案很简单。在我的maintenance.php中,我只需要通过在前面添加“/”来改变绝对路径的相对路径而不是CSS文件和图像。

原来是:

<link href="css/maintenance.css" rel="stylesheet" type="text/css">

更改为:

<link href="/css/maintenance.css" rel="stylesheet" type="text/css">