301 динамическая переадресация работает неправильно

Мне нужно изменить старые динамические URL-адреса на новые, поэтому я создал файл.htaccess, но что-то не так и перенаправить на ERR_TOO_MANY_REDIRECTS проблема.

Ниже моего файла.htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^movie/(.+)/$ /cat.php?name=$1 [QSA,L]
RewriteCond %{QUERY_STRING} ^name=(.*)$ [NC]
RewriteRule ^cat\.php$ /movie/%1/? [R=301,L]

1 ответ

Решение

Вам нужно проверить исходный URI и перенаправить на красивый URL из этого:

RewriteEngine on

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^movie/(.+)/$ /cat.php?name=$1 [QSA,L]
Другие вопросы по тегам