这是我的维护模式重定向:
# MAINTENANCE-PAGE REDIRECT
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^0\.0\.0\.0
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteCond %{REQUEST_URI} !^/ads/.*$ [NC]
RewriteCond %{REQUEST_URI} !^ad_([0-9a-zA-Z]+)\.php$ [NC]
RewriteCond %{REQUEST_URI} !^/assets/.*$ [NC]
RewriteCond %{REQUEST_URI} !/new/$ [NC]
RewriteRule .* /new/ [R=302,L]
</IfModule>
我正在尝试从重定向中排除所有以“ad_”开头的文件。我尝试使用以下行:
RewriteCond %{REQUEST_URI} !^ad_([0-9a-zA-Z]+)\.php$ [NC]
不幸的是,公共根文件夹中有数百个这样的文件,而不是在自己的子文件夹中。这些文件的示例:
- 广告登录.php
- 广告消息编辑器
- 广告管理_mm_account_1.php
这些文件名包含 1 到 4 个下划线,但它们都至少有一个下划线,以“ad_”开头。
答案1
尝试添加_
到你的正则表达式中,例如
RewriteCond %{REQUEST_URI} !^ad_([0-9a-zA-Z_]+)\.php$ [NC]
UPD 编辑:并且正如@MrWhite 在评论中提到的那样 - 像在其他规则中一样添加斜线前缀。