У меня есть правило, которое получает до трех частей, разделенных/(косой чертой). Они представляют собой /приложение/контроллер/действие, но они не являются обязательными, что означает /, /приложение, /приложение/контроллер работы, а также.Проблема Apache modrewrite htaccess
Дело в том, я хочу еще одно правило, перед этим, который будет установить приложение по умолчанию «интерфейс», и я думаю, что это должно выглядеть следующим образом:
RewriteRule ^(.*)$ frontend/$1
Однако, если у меня есть url /part1 все в порядке, и оно принимается как /frontend/part1. Однако, если url содержит a/(косая черта), например /part1/part2, я получаю 500 внутренних ошибок. Если я удалю это правило, исходный будет работать с /frontend/part1/part2, поэтому проблема находится в этом правиле. Кажется, что $ 1 не принимает косые черты. Это известный факт?
А также, я хотел бы, что это правило не побежал, если текущий URL начинается уже с внешнего интерфейса /, я имею в виду что-то вроде этого:
RewriteRule ^frontend(/.*)?$ frontend$1 [S=1]
Или это могло быть сделано более элегантно с RewriteCond?
Спасибо!
Спасибо !!! Кажется, это работает. Но можете ли вы быстро объяснить, почему моя работа не работает или какая разница между вашим и моим solutin? $ 0 означает весь запрос, не так ли? – treznik
Ваше решение, вероятно, вызывает бесконечный цикл. Но мое правило исключает любое совпадение, начинающееся с 'frontend /', которое должно быть переписано на 'frontend/...'. И, да, '$ 0' содержит совпадение всего шаблона. – Gumbo