У меня есть несколько таких правил перезаписи
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]
Удачи!
--джед