URL переписать с поворотом

У меня проблемы с переписыванием определенного URL.

Я занимаюсь перемещением сайта, и у Google все еще есть старые URL-адреса в индексе, которые он сканирует, и которые я хотел бы перенаправить на новую страницу. Я думал, прежде чем я сделаю полосу строки запроса для строк запроса и перенаправления, мне было интересно, если вы можете сделать это в mod_rewrite сначала? В настоящее время у меня есть это в моем.htaccess, но это не работает.

RewriteRule ^news.php?action=view&title=(.*) /blog.php?article_keyword=$1 [L]

Среда Linux с Apache

2 ответа

Решение

Используйте этот код в вашем.htaccess:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{QUERY_STRING} ^action=view&title=(.*)$ [NC]
RewriteRule ^news\.php/?$ /blog.php?article_keyword=%1 [L,R=301,NC]

Так нельзя -- RewriteRule не работает со строкой запроса напрямую - только с помощью RewriteCond:

RewriteCond %{QUERY_STRING} ^action=view&title=(.*)
RewriteRule ^news.php$ /blog.php?article_keyword=%1 [R=301,L]

я добавил R=301 флаг для выдачи постоянного перенаправления, поэтому Google будет знать, что старый URL больше не используется, и вместо этого ему следует использовать новый URL. Если вам не нужен такой редирект, то удалите его и оставьте только L флаг.

Другие вопросы по тегам