2017-01-02 56 views
0

目前,我在.htaccess文件中使用此代码来触发我的站点的维护页面。排除特定目录中的维护页面

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [R=503,L] 
ErrorDocument 503 /maintenance.html 
Header Set Cache-Control "max-age=0, no-store" 
</IfModule> 

我会怎么做,所以我仍然可以访问的目录,我将工作和情况下我的朋友希望访问它不只是我的IP地址。

我已经做了一些搜索,但没有发现任何尚未

干杯

汤姆

+0

好吧,听起来像一个很好的计划。去吧! (_or你在这里有什么问题吗?_) – arkascha

+0

@arkascha是的,我做过了,如果你看过我说过我想让它在维护页面启动时可以访问它 –

+0

你确实写过。但这不是一个问题,而是一个陈述,并且这在这里不适合作为一个问题。为此,你需要展示你自己的尝试来解决这个任务,而不仅仅是问:“为了我而做”。你看我们不是免费的编码服务。预计你将能够自己使用你的工具。只有当你被自己的企图困住时,那么是时候在这里提出一个具体的问题。如果你无法或者只是懒惰地开始自己,那么我建议你聘请一个有偿的程序员为你做你的工作。 – arkascha

回答

0

我说你可以简单的维修模式处理之前执行一些例外规则:

<IfModule mod_rewrite.c> 
RewriteEngine On 

# immediately end all rewriting for specific IPV4 addresses 
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.123$ [OR] 
RewriteCond %{REMOTE_ADDR} ^321\.321\.321\.321$ 
RewriteRule^- [END] 

# for everyone else: check for maintenance mode 
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [R=503,L] 
ErrorDocument 503 /maintenance.html 
Header Set Cache-Control "max-age=0, no-store" 
</IfModule> 

或者,您可以将否定条件作为附加条件添加到维护模式重写逻辑。但我认为上述内容更易于阅读和维护。

+0

不幸的是,由于某些原因,当使用您给我的代码时,它会出现内部错误500 –

+0

您在http服务器错误日志文件中得到的具体错误消息是什么? – arkascha

+0

查看后,日志文件中没有最近的错误 –