Проблема Apache Modrewrite htaccess - PullRequest
       4

Проблема Apache Modrewrite htaccess

0 голосов
/ 22 августа 2009

У меня есть правило, которое состоит из трех частей, разделенных / (косой чертой). Они представляют / 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?

Спасибо!

1 Ответ

2 голосов
/ 22 августа 2009

Попробуйте это правило:

RewriteCond $0 !^frontend/
RewriteRule .* frontend/$0 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...