На данный момент мы одна страница, которая показывает список ссылок каждая ссылка имеет свой собственный идентификационный номер.htaccess перезаписи URL и перенаправлять 301
каждое звено получает открытый с файлом info.php? ID = X
, например:
www.mysite.com/info.php?ID=1 shows the link "weather italy"
www.mysite.com/info.php?ID=2 shows the link "weather france"
Поскольку у нас есть несколько ссылок на «погоду в Италии» и «погода Франции», мы хотели бы переписать новые URL (погода-Италия и погода-Франция) в .htacces Whith новые URL-адреса, которые мы имели бы Структура:
www.mysite.com/weather-italy/info.php?ID=1
www.mysite.com/weather-france/info.php?ID=2
С в следующем коде мы сообщим серверу переписать URL-адреса и вызвать исходный файл:
RewriteRule ^weather-italy/info.php?$ info.php [NC,L]
RewriteRule ^weather-france/info.php?$ info.php [NC,L]
Это прекрасно работает.
Чтобы избежать двойной индексации мы хотим перенаправить 301 старую ссылку на новую ссылку.
Мы добились того, что с помощью следующего кода:
RewriteCond %{THE_REQUEST} \?ID=1
RewriteRule ^info\.php$ http://www.touristinfo.fr/weather-italy/info\.php [L,R=301]
RewriteCond %{THE_REQUEST} \?ID=2
RewriteRule ^info\.php$ http://www.touristinfo.fr/weather-france/info\.php [L,R=301]
Это также делает работу, но в сочетании с первой частью сценария создает бесконечный цикл.
Что не так с нашим кодом?
Большое спасибо за вашу помощь :)
Используя код, предложенный Sumurai8 теперь перенаправляет и записывает URLs должным образом. – matbosco
у нас все еще есть один вопрос. Мы хотели бы вернуть код ошибки 301 при вызове старой ссылки, поэтому мы заменили R на R = 301. Старая ссылка stil возвращает код 200. Почему это происходит? Цель перенаправления состояла в том, чтобы вернуть код 301. – matbosco
Изменен ли URL-адрес в строке url? Если да, то это происходит с кодом статуса 301 или 302. Если нет, очистите кеш. Вы, скорее всего, смотрите код состояния, который отправляется 'weather-country/info.php', который должен быть 200. – Sumurai8