Назад | Перейти на главную страницу

уникальный вопрос .htaccess о mod_rewrite и RewriteCond

У меня есть несколько таких правил перезаписи

RewriteRule ^dir/(.*)-something.html otherdir/file1.php?var1=val&var2=$1 [L,NC]
RewriteRule ^dir/ otherdir/file2.php?var1=val [L,NC]

dir / не настоящий каталог. Все выше работает, как ожидалось.

Однако пользователь может ввести что угодно, например

mysite.com/dir/asdfasdfasdfsdf

И они по-прежнему перенаправляются на file2.php. Если пользователь вводит просто мусор, я бы хотел вместо этого выдать 404.

Я предполагаю, что мне нужен RewiteCond, который будет проверять наличие пустого места после косой черты и только затем обслуживать file2.php, но я не уверен, как его записать.

Я думаю, если поставить $ в конце dir/ он сработает (обратите внимание, что я не тестировал это, поэтому, пожалуйста, попробуйте его, прежде чем голосовать за меня или что-то еще). В $ означает "конец строки" точно так же, как ^ означает «начало строки».

RewriteRule ^dir/$ otherdir/file2.php?var1=val [L,NC]

Удачи!

--джед