RewriteRule не работает внутри FilesMatch - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь выполнить некоторую проверку PHP при загрузке файла, чтобы решить, могу ли я показать его или нет пользователю.Мне нужно использовать PHP, потому что мне нужно проверить, вошел ли пользователь в систему.Для этого я добавил

RewriteRule ^wp-content/uploads(/(custom_folder)/.*\.\w+)$ index.php?a_parameter=$1 [QSA,L]

в мой .htaccess.Затем каждый раз, когда пользователь пытается просмотреть файл в /wp-content/uploads/custom_folder/, я проверяю, определен ли a_parameter, и выполняю проверку.

Это работает нормально, но теперь я хочу выполнить эту проверку только для .htm и .html файлов.Для этого я попытался добавить

<FilesMatch "\.(htm|html)$">
RewriteRule ^wp-content/uploads(/(custom_folder)/.*\.\w+)$ index.php?a_parameter=$1 [QSA,L]
</FilesMatch>

, но он не работает.

Чтобы дать больше контекста, я пытаюсь сделать это в WordPress '.htaccess, так что это все.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /_wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /_wp/index.php [L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /_wp/
RewriteRule ^index\.php$ - [L]

<FilesMatch "\.(htm|html)$">
RewriteRule ^wp-content/uploads(/(custom_folder)/.*\.\w+)$ index.php?a_parameter=$1 [QSA,L]
</FilesMatch>

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /_wp/index.php [L]
</IfModule>

# END WordPress

Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 29 марта 2019

Я изменил свой подход.Вместо использования FilesMatch я изменил регулярное выражение на целевые файлы, заканчивающиеся на .htm, .html и каталоги.Учитывая характеристики проекта, над которым я работаю, я могу предположить, что пустой каталог будет иметь либо index.htm, либо index.html, так что это работает для меня.Если это каталог, то я пытаюсь найти индексный файл в PHP.

^wp-content/uploads/custom_folder/((?:.*\/)|.*\.(?:html|htm))$ index.php?relative_path=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...