Я искал ответ в течение нескольких часов, так что извините, если его попросили несколько раз, я пропустил его.RewriteRule, являющийся жадным
В основном я хочу сделать переписку, чтобы игнорировать первый каталог. Этот первый dir на пути будет другим, поэтому я подумал, что могу использовать регулярное выражение. Но мое регулярное выражение соответствие всего пути к имени файла:
RewriteRule ^([a-z]+)?/(.+)$ $2 [L]
это работает, если я один уровень:
http://test.domain.com/one/index.php
я получаю фактическую индексную страницу корня. Это то, что я хочу. но если бы я должен был пойти глубже:
http://test.domain.com/one/two/anotherfile.php
я получаю сообщение о том, /anotherfile.php не был найден, потому что он ищет в корневом каталоге для него. Таким образом, кажется, что мое регулярное выражение не останавливается после последнего [a-z]. Я ценю любую помощь.
Это Apache2, если это имеет значение вообще.
Предполагая, что вход является 'one/index.php' и' one/two/anotherfile.php', регулярное выражение работает так, как ожидалось, оно возвращает 'two/anotherfile.php' для второй строки. Возможно ли, что ваша проблема находится где-то в другом месте? Можете ли вы опубликовать несколько подробностей? – Kobi
Спасибо, но я не знаю, что еще может быть. Вот что у меня есть:!? RewriteEngine На RewriteCond% {REQUEST_URI} ^/Lib RewriteCond% {REQUEST_URI} ^/изображения RewriteRule^([AZ] +)/(. +) $ $ 2 [L] это: http://test.domain.com/one/two/index.php возвращает таже страница (/index.php) как: http://test.domain.com/one/ index.php – lardlad
Есть ли что-то еще, что я должен попробовать? Это регулярное выражение является жадным. Если я изменяю регулярное выражение на «RewriteRule^(один)?/(. +) $ $ 2 [L]», он отлично работает. Но я надеялся сделать этот первый динамический каталог. – lardlad