在 .htaccess 维护模式重定向中排除所有以 X 开头的文件

在 .htaccess 维护模式重定向中排除所有以 X 开头的文件

这是我的维护模式重定向:

# 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 在评论中提到的那样 - 像在其他规则中一样添加斜线前缀。

相关内容