设想:
我有一个处理大量重写的 .htaccess 文件(我知道它在 PHP 中可能/更容易)
一切正常都
/some/fake/dir/foobar
在内部重写为
/index.php?some=fake&dir=foobar
并且任何包含查询字符串的 url 都被剥离了
所以我想为任何不符合声明条件的 IP 创建一个“即将推出的页面”或“维护中的页面”
我尝试过的示例:
我尝试了这样的事情,以及其他一些变化。
# IF not from DEV address
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
# AND not for comingsoon page or other assets
RewriteCond %{THE_REQUEST} !\?comingsoon [OR]
RewriteCond %{REQUEST_URI} !^/comingsoon
# THEN send them to comingsoon page
RewriteRule ^ /comingsoon [R,L]
我已经在 .htaccess 文件的所有潜在区域进行了尝试以满足条件。
似乎问题在于获得重定向循环。apache 日志显示它请求/comingsoon
页面然后重定向到根目录/
。我假设是因为 to 的内部/foo/bar
转换/?foo=bar
。但我似乎不知道如何弄清楚/
重定向到“幽灵”页面的位置/comingsoon
下面是.htaccess文件的布局:(为了节省时间理解问题省略了代码)
Options -Indexes
RewriteEngine on
RewriteBase /
# Forced https (should not effect the problem)
[...]
# To externally redirect /dir/index.php to /dir/
[...]
# To externally redirect /dir/foo.php to /dir/foo
[...]
# To internally redirect /dir/foo to /dir/foo.php
[...]
# Prevent Rewrite on existing directories, files, and links
[...]
# Remove query string
[...]
# To internally rewrite directories as query string
[...]
# Custom error documents
如果需要完整的 .htaccess 来解决,请发表评论。谢谢!
/编辑:
请注意,我已经让它与“真实”文件一起正常工作,因为我的脚本可以防止对请求的现有文件进行重写。这不是我正在寻找的解决方案。我的主索引文件根据 request_uri 通过查询字符串重写的内容来提供动态内容