我有一个移动网站,我在名片上使用QR码。目前,当我将我的主网站进行维护时,我使用503重定向到maintenance.php。但这也取消了移动网站。我想要实现的是我的移动网站以及该目录中的所有文件和文件夹(/ qr /)在维护模式下仍然可以访问。此外,我想将访问者重定向到我的移动名片,并向他们显示他们正在访问替代网站的消息。
我的移动名片位于mydomain.com/qr/。我在/qr/index.php的<body>
标记之后添加了这个:
<?php if(isset($_GET["maintenance"])) {
header('HTTP/1.1 503 Service Temporarily Unavailable');
echo '<div class="maintenance">Our website is currently undergoing maintenance. You are now viewing our mobile business card as a substitute. Our apologies for any inconvenience, we will be back shortly.</div>';
}
else{}
?>
所以我希望我的503错误页面为mydomain.com/qr/?cp=xxxxx&maintenance
(其他内容我需要cp
。)
我试过的其中一件事是,我在根文件夹中将以下内容设置为我的.htaccess:
RewriteEngine On
Alias /qr/index\.php "/qr/index.php?cp=xxxxx&maintenance"
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{REQUEST_URI} !/qr/$
RewriteCond %{REQUEST_URI} !\.(css|png|vcf)$
RewriteRule .* /qr/index\.php [L]
但是我收到了500内部服务器错误。我读过/path/to/503.php
需要使用别名的地方,因此我有理由这样做。
我做错了什么,我怎样才能达到预期的效果?
干杯,
Webgremlin
答案 0 :(得分:3)
使用Jon的提示,我通过将htaccess更改为此来获得了我想要的结果:
#BEGIN 503 Maintenance
ErrorDocument 503 /qr/index.php?cp=xxxxx&maintenance
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{REQUEST_URI} !^/qr/.*$
RewriteRule .* - [R=503,L]
#EINDE 503 Maintenance
我还必须将<base href="http://www.mydomain.com/qr/" />
添加到我的/qr/index.php文件的头部。否则它会尝试从mydomain.com/style.css和mydomain.com/images加载我的css和图像,而不是从mydomain.com/qr /.
希望这有助于某人。
答案 1 :(得分:2)
使用错误文档有什么问题?
ErrorDocument 503 /qr/index.php?cp=xxxxx&maintenance
答案 2 :(得分:1)
您收到错误是因为.htaccess中不允许Alias
命令。它只能放在像httpd.conf
这样的Apache配置中。