我需要拒绝除了一些IP以外的所有人访问整个网站。 此外,我需要允许每个人访问一个网站文件夹:
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
# Allow access only for devs
RewriteCond %{REMOTE_ADDR} !10.10.10.10 [NC] # First dev id
RewriteCond %{REMOTE_ADDR} !11.11.11.11 [NC] # Second dev id
# Allow direct access to files
RewriteCond %{REQUEST_FILENAME} !-f
# Redirecting guests
RewriteRule (.*) /coming/soon/index.html [R=307]
# But where to place this condition?
RewriteRule ^/?preview/?$ /preview/index.html [NC]
# Other rules for main site structure
# ...
所以,我需要只为开发者加载整个网站。其他用户(访客)将看到/coming/soon/
页面
此外,还允许访客查看该网站的/preview/
页面。
怎么做?
答案 0 :(得分:1)
如果您的/preview/
重写适合所有用户并且不依赖于后续重写规则,那么最简单的方法是首先将此RewriteRule
放入[L]
标志,以便随后重写不会被应用。
否则,RewriteRule
的例外情况可能被指定为与RewriteCond
匹配的%{REQUEST_URI}
:
RewriteCond %{REQUEST_URI} !^/?preview/?$ [NC]
另请注意,您建议的规则会将/preview
和/preview/
重写为/preview/index.html
,并且除非执行重定向,否则这些重写中的第一个可能会破坏相对链接。