Простая перезапись URL - PullRequest
       1

Простая перезапись URL

1 голос
/ 20 июня 2011

Я пытаюсь переписать часть URL, поскольку я изменил CMS и все еще хочу, чтобы Google нашел мои статьи.

У меня есть:

www.mywebsite.com/vision
www.mywebsite.com/vision/40/some-article-name

и хотите переименовать их:

www.mywebsite.com/news
www.mywebsite.com/news/40/some-article-name

Любые намеки на правила переписывания или где я могу посмотреть? Я хочу изменить правила в моем файле .htaccess.

Ответы [ 2 ]

2 голосов
/ 21 июня 2011
# Activate Rewrite Engine
RewriteEngine On
# redirect /vision to /news
RewriteRule ^vision$ http://www.mywebsite.com/news [R=301,NC]
# redirect /vision/bla-bla to /news/bla-bla
RewriteRule ^vision/(.*)$ http://www.mywebsite.com/news/$1 [R=301,NC,QSA]

Теоретически (и практически) эти 2 правила переписывания могут быть объединены, но если у вас есть URL, начинающийся с «vision» (например, вот так: /visions/hurray), то такое правило может перенаправлять неправильные URL. Поэтому я сделал это по двум правилам, что намного безопаснее.

0 голосов
/ 21 июня 2011

Попробуйте: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

или: http://httpd.apache.org/docs/2.2/mod/mod_substitute.html, если вы хотите изменить ссылки в html-содержимом, возвращаемом в браузер.

Вот пример того, как я мог бы переписать, я думаю, что вы после ...

RewriteRule ^ (. ) / vision /(.) $ 1 / news / $ 2

Это может быть в широком смысле, в этом случае это может быть лучше ...

RewriteRule <a href="http://www.mywebsite.com/vision/" rel="nofollow">http://www.mywebsite.com/vision/</a>(.*)$ <a href="http://www.mywebsite.com/news/" rel="nofollow">http://www.mywebsite.com/news/</a>$1

Кроме того, изучение основ регулярных выражений будет необходимым навыком для выполнения любого сложного переписывания IMO.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...