Ответ 1
Вам нужно проверить, что старый URL-адрес с php
в нем фактически запрашивается путем сопоставления с %{THE_REQUEST}
, иначе он будет перенаправлять цикл навсегда (например, пользователь переходит к команде .php, перенаправляет адреса на команды, команды запросов браузеров, перезаписывает сервер как teams.php, сервер видит "teams.php" и перенаправляет команды, команды запросов браузеров, перезаписывает сервер как teams.php и т.д.).
RewriteEngine On
# redirect when the user actually requests for teams.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /teams\.php\?league=([^&]+)&team=([^&]+)&year=([^&]+)&tab=([^\ ]+)
RewriteRule ^teams\.php$ /teams/%1/%2/%3/%4? [R=301,L]
# internally rewrite any /teams/ URI
RewriteCond %{REQUEST_URI} !^(css|js|img)/
RewriteRule ^teams/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ teams.php?league=$1&team=$2&year=$3&tab=$4 [L]