0

当我的站点处于维护模式时,我使用我的 .htaccess 文件将所有访问者重定向到指定的维护页面。

代码工作得很好,但我不想在地址栏中显示我的维护页面的路径,而是显示我的域名。因此,当访问者被重定向时,我不想在地址栏中显示“www.mysite.com/maintenance.html”,而是显示“www.mysite.com”。这可能吗?

我正在使用的这段代码:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteCond %{REQUEST_FILENAME} !.css$
RewriteCond %{REQUEST_FILENAME} !.png$
RewriteCond %{REQUEST_FILENAME} !.jpg$
RewriteCond %{REQUEST_FILENAME} !.gif$
RewriteCond %{REQUEST_FILENAME} !.js$

RewriteRule $ /maintenance.html [R=302,L]
4

1 回答 1

0

说得太早了。它仅部分起作用:当我尝试访问除域索引之外的任何其他页面时,我被重定向到维护页面,但是没有出现“维护中”图像和 css。我只在空白页上得到没有样式的文本。

看起来你想做几件事。

  1. 在维护模式下,您希望将所有请求重定向到根页面(例如http://www.mysite.com/
  2. 根页面将显示 /maintenance.html 中的内容

所以我们需要分别解决这两件事:

# for #1
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteCond %{REQUEST_FILENAME} !.css$
RewriteCond %{REQUEST_FILENAME} !.png$
RewriteCond %{REQUEST_FILENAME} !.jpg$
RewriteCond %{REQUEST_FILENAME} !.gif$
RewriteCond %{REQUEST_FILENAME} !.js$
RewriteRule $ / [R=302,L]

# for #2 
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteRule ^$ /maintenance.html
于 2012-04-20T19:20:23.363 回答