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