У меня есть правило, которое состоит из трех частей, разделенных косой чертой / (косая черта). Они представляют собой /app/controller/action, но являются необязательными, что означает /, /app, /app/controller< /strong> тоже работает.
Дело в том, что я хочу другое правило перед этим, которое установило бы приложение по умолчанию как «интерфейс», и я думаю, что оно должно выглядеть так:
RewriteRule ^(.*)$ frontend/$1
Однако, если у меня есть URL-адрес /part1, все в порядке, и он принимается как /frontend/part1. Однако, если URL-адрес содержит / (косая черта), например /part1/part2 , я получаю внутреннюю ошибку 500. Если я уберу это правило, первое будет работать с /frontend/part1/part2, так что проблема в этом правиле. Кажется, что $ 1 не принимает в нем косую черту. Это известный факт?
И еще, хотелось бы, чтобы это правило не запускалось, если текущий url уже начинается с frontend/, я думаю примерно так:
RewriteRule ^frontend(/.*)?$ frontend$1 [S=1]
Или это можно сделать более элегантно с помощью RewriteCond?
Спасибо!