Я пытаюсь перенаправить все существующие 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.
Заранее спасибо.
Вы можете использовать директив 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