Правило перезаписи, которое соответствует папке в базовом каталоге, но не папкам с тем же именем на более глубоких уровнях - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь добавить правило перезаписи для WordPress, чтобы использовать этот Orbisius Media Protector . Плагин предполагает, что загружаемые файлы находятся в / wp-content /, но я перенес загрузку в / assets /.

Я изменил RewriteCond %{REQUEST_URI} ^(.*?/?)wp-content/uploads/.* [NC] на RewriteCond %{REQUEST_URI} ^(.*?/?)assets/.* [NC], но это влияет на файлы, расположенные в wp-content / plugin-name / assets, поэтому мне нужен RegEx, который соответствует только / assets / на первом уровне URL.

Я работаю в среде IIS. Я использовал функциональность URL Rewrite диспетчера серверов для импорта правил .htaccess для web.config, так что это код, с которым я на самом деле работаю:

<rule name="Media Filtering Rule" stopProcessing="true">
  <match url="." ignoreCase="false" />
  <conditions logicalGrouping="MatchAll">
    <add input="{URL}" pattern="^(.*?/?)assets/.*" />
    <add input="{URL}" pattern="orbisius_media_protector" negate="true" />
  </conditions>
  <action type="Rewrite" url="{C:0}/?orbisius_media_protector={REQUEST_URI}" appendQueryString="true" />
</rule>

Мне нужно переписать, чтобы применить ко всем файлам, расположенным в domain.com/assets/filename.ext, но игнорировать файлы, расположенные в других папках с именами ресурсов, таких как domain.com/wp-content/plugins/plugin-name/assets/filename.ext.

1 Ответ

0 голосов
/ 26 апреля 2019

Я не уверен насчет плагина, однако, если вы хотите, чтобы шаблон соответствовал папке assests на корневом уровне, а не на любом другом уровне, вы можете попробовать следующее регулярное выражение ^ (/? Assets) /.*, это будетработайте либо как условие, либо как образец в URL-адресе совпадения, где у вас есть.

С помощью регулярного выражения у вас есть активы ^ (. ? /?) /., что соответствует ресурсам на всех уровнях каталогов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...