htaccess сопоставить что-либо после / путь к пути

Вот сценарий:

У меня есть сайт, который использует различные mod_rewrites для удаления расширений файлов и тому подобное. Теперь мне нужно отправить любой трафик на / path / что-то / что-то / на / path /, но с сохранением сегментации на месте.

Вот мой файл, это последнее правило, которое вызывает проблемы в том, что он перенаправляет на / путь, а не сохраняет путь и рендеринг / путь

RewriteEngine On

RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC]
RewriteRule . %1 [NE,R=301,L]

RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

#This is the problem child!
RewriteRule ^path/([^/]+)/(.*)$ /path [NC]

Спасибо за любые советы заранее!

1 ответ

Похоже, я наткнулся на решение методом проб и ошибок:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^path/(.*)$ path/index.php/$1 [L]

Наверное, следовало бы упомянуть index.php в вопросе тоже!

Другие вопросы по тегам