Выполните 301 переадресацию старых ссылок в блоге на новые записи на том же сервере

1

Я пытаюсь перенаправить все существующие URL-адреса на новую слегка упрощенную структуру URL-адресов и хочу, чтобы существующие ссылки, индексированные в google/bing, не были повреждены.

Текущий url для сообщений выглядит так /blog/post/some-random-post-here, новый почтовый URL-адрес практически одинаковый, но больше не имеет /post/ в них. Вместо этого его /blog/some-random-post-here

Я создал новое правило htaccess для новых URL-адресов. Итак, на данный момент обе версии URL работают. Однако я хочу сохранить один экземпляр по причинам SEO. Это делается в блоге, сделанном с нуля (это не WordPress или другое программное обеспечение для ведения блогов)

Вот правила перезаписи в моем htaccess для старых и новых URL-адресов.

**OLD URL:** RewriteRule ^post/([^/]+)/$ index.php?controller=post&action=view&post=$1 [L]

 ------------------------------------------------------------------------

**NEW URL:** RewriteRule ^([^/]+)/$ index.php?controller=post&action=view&post=$1 [L]

Что мне нужно будет добавить к структуре OLD URL, чтобы сделать 301 постоянным перенаправлением на новую структуру URL? Правила OLD и NEW rewrite по-прежнему активны. Но я верю в новое правило для нового URL.

Заранее спасибо.

Теги:
.htaccess
redirect
mod-rewrite

1 ответ

1
Лучший ответ

Вы можете использовать директив RedirectMatch для этого перенаправления URL, это легко.

Пытаться:

RedirectMatch 301 ^/blog/post/(.*)$ http://domain.com/blog/$1

Или попробуйте mod_rewrite Чтобы удалить строки запроса

 RewriteEngine on


RewriteRule ^blog/post/(.*)$ http://example.com/blog/$1? [NC,R,L]

Пустой вопросительный знак ? в конце важно, поскольку оно будет отбрасывать исходную строку запроса из url.

переадресовать 301

http://example.com/blog/post/foo

в

http://example.com/blog/foo
  • 0
    Это работает. Единственное, что он также передает оригинальную неизмененную структуру URL. Так что это добавляется после / foo /? Controller = post & action = view & post = foo
  • 0
    Вы хотите удалить строки запроса?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню