Page 1 of 1

Смена путей через 301 редирект

Posted: Thu May 30, 2013 8:30 am
by Abraham777
Решил оптимизировать старый сайт на Вордпресс, перенес на сервер с Вестой.
УРЛы типа сайт.ру/раздел/статья/, сайт.ру/раздел/подраздел/статья/. Должны стать сайт.ру/статья. Как нужно прописать в htacсses 301 редирект? Или надо делать через правила Nginx?

Re: Смена путей через 301 редирект

Posted: Thu May 30, 2013 11:59 am
by skid
Эти правила можно добавлять в .htaccess

Code: Select all

Redirect 301 /раздел/статья/ http://сайт.ру/раздел/подраздел/статья/

Re: Смена путей через 301 редирект

Posted: Fri May 31, 2013 5:12 am
by Abraham777
Помогло
RewriteRule ^category/post/(.*)$ post/$1 [R=301,L]
но только для статей сайт.ру/раздел/статья/.
Для статей с подкатегорий сайт.ру/раздел/подраздел/статья как надо прописать используя регулярные выражения вордпресс?
Статей много, вручную не получится.

Re: Смена путей через 301 редирект

Posted: Sat Jun 01, 2013 5:39 am
by Abraham777
RewriteRule ^category/subcategory/post/(.*)$ /post/$1 [R=301,L] или
RewriteRule ^category/category/post/(.*)$ /post/$1 [R=301,L]

не работает, то есть с подкатегорий не получается. Может это связанно с правилами Nginx?

Re: Смена путей через 301 редирект

Posted: Sat Jun 01, 2013 10:21 am
by skid
Попробуйте добавить заголовок RewriteEngine On, если его нет.

Code: Select all

RewriteEngine On
RewriteBase /
RewriteRule ^category/category/post/(.*)$ /post/$1 [R=301,L]
У меня этот редирект сработал без проблем.

Code: Select all

[root@nxt public_html]# curl -I http://nxt.vestacp.com/category/category/post/test
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 01 Jun 2013 10:17:57 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Keep-Alive: timeout=60
Location: http://nxt.vestacp.com/post/test

Re: Смена путей через 301 редирект

Posted: Sun Jun 02, 2013 5:16 pm
by Abraham777
RewriteRule ^category/category/post/(.*)$ /post/$1 [R=301,L] редиректит некоторые подразделы, некоторые нет. Как такое может быть?
Кеш прочишен (удалены все плагины кеша)

файл .htaccses
****************************************************************************************************************************
<Files .htaccess,.svn>
order allow,deny
deny from all
</Files>
Options +FollowSymlinks

<IfModule mod_rewrite.c>
</IfModule>

# End of Redirection


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^category/category/post/(.*)$ /post/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress