使用htaccess在维护模式下显示域名

时间:2012-04-20 01:12:04

标签: .htaccess url redirect

当我的网站处于维护模式时,我使用我的.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]

1 个答案:

答案 0 :(得分:0)

  

说得太快了。它只能部分工作:当我尝试访问任何其他页面而不是域索引时,我被重定向到维护页面,但是“维护不足”图像和css没有出现。我只是在空白的白页上找到了没有样式的文字。

看起来你想要做几件事。

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

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

    # 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