Я пытаюсь переназначить пути к старым изображениям на новые, на сайте, который создан с помощью 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-адресах …
Таким образом, кажется, что есть конфликт между последней строкой и строкой переназначения, но я не знаю, что это такое. Любые указатели будут высоко оценены!
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]
Других решений пока нет …