Правила столкновения в .htacess выкидывает внутреннюю ошибку сервера

Я пытаюсь переназначить пути к старым изображениям на новые, на сайте, который создан с помощью Codeigniter.

Старые пути выглядят так:

mydomain.com/images/maps/MI/206717178X.jpg

и новые пути выглядят так:

mydomain.com/resources/images/products/front/MI/206717178X.jpg

Это мой файл .htaccess:

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^images/maps/([A-Z]{2,3})/(.*)$ resources/images/products/front/$1/$2 [L]
RewriteRule .* index.php/$0 [PT,L]

И я получаю Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request.

Если я удаляю последнюю строку, переназначение работает хорошо, но, конечно, весь сайт не работает, потому что ему нужен index.php во всех URL-адресах …

Таким образом, кажется, что есть конфликт между последней строкой и строкой переназначения, но я не знаю, что это такое. Любые указатели будут высоко оценены!

1

Решение

RewriteCond относится только к самому следующему RewriteRule, Попробуйте этот код:

RewriteEngine on

# skip files/directories from all the rules below
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^images/maps/([A-Z]{2,3})/(.*)$ resources/images/products/front/$1/$2 [L]
RewriteRule ^ index.php/$0 [L]
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]