2017-05-05 75 views
1

我为我的网站设置了一个维护页面,所以当用户访问时,它们会以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内容。

回答

1

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

最初:

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

更改为:

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