如何为HTTPS配置503状态?
问题描述:
我为我的网站设置了一个维护页面,所以当用户访问时,它们会以503状态返回并重定向到一个自定义的maintenance.php页面。所以它工作正常,我可以清楚地看到,在我的浏览器中,只要我在搜索地址栏中手动输入网址,就会正确返回503。如何为HTTPS配置503状态?
问题是,如果有人点击一个链接到来自推荐人的某些页面,让我们从Facebook说,它会将它们重定向到maintenance.php页面,但由于某种原因,它无法加载与其关联的CSS文件和图像。 CSS文件和图像突然返回503状态。
我的网站默认也会重定向“http”页面使用“https”和“www”。如果我在“http”中运行相同的页面,CSS文件和图像将加载。
然后,如果我在URL中运行“https”中没有“www”的页面,页面将加载CSS文件和图像。
所以只要似乎“HTTPS”和“WWW”都是在URL,网页,其CSS文件,它的图像将全部返回503
我的503个状态在配置我的.htaccess文件:
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文件和图像会加载?
编辑:它似乎也有这个问题的网页没有他们的URL重定向到maintenance.php要么。尽管如此,他们仍然显示maintenance.php内容。
答
事实证明,解决方案很简单。在我的maintenance.php中,我只需要将相对路径更改为绝对路径,而不是将CSS文件和图像添加到前面的“/”。
即
最初:
<link href="css/maintenance.css" rel="stylesheet" type="text/css">
更改为:
<link href="/css/maintenance.css" rel="stylesheet" type="text/css">