|
|
|
| Здравствуйте,
В общем, в двух словах:
Был адрес такой:
http://site.ru/?section=news&time=present&cat=2&idnews=88401&page=1
Я сделал такой:
http://site.ru/news/present/2/88401/1
Теперь надо сделать, чтоб при заходе на старую страницу меня перекидывало на новую редиректом.
Сейчас работает ЧПУ. Так же остались функционировать старые адреса. Надо, чтоб заходя на старый адрес, меня перекидывало на новый, то есть чтоб для поисковой системы не существовало двух страниц с одинаковым контентом.
На сколько я понимаю, это 1-2 строки в htaccess. Но у меня реализовать не получилось.
Вот мой файл .htaccess
AddDefaultCharset windows-1251
ErrorDocument 404 http://site.ru
Order allow,deny
Allow from all
Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+)/([0-9]+)/([0-9]+) /?section=$1&time=$2&cat=$3&idnews=$4&page=$5 [L,QSA]
RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+) /?section=$1&time=$2&cat=$3 [L,QSA]
|
| |
|
|
|
|
|
|
|
для: volodumir
(17.03.2012 в 02:30)
| | У вас
RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+)/([0-9]+)/([0-9]+) /?section=$1&time=$2&cat=$3&idnews=$4&page=$5 [L,QSA]
| - это текущие ЧПУ. Я правильно понимаю?
Для всех старых адресов нужно создать правила вида:
RewriteCond %{QUERY_STRING} ^section=([a-z]+)&time=([a-z]+)&cat=(\d+)&idnews=(\d+)&page=(\d+)$
RewriteRule ^$ %1/%2/%3/%4/%5? [R=301,L]
|
Вставлять это следует перед существующими правилами ЧПУ. Но, возможно, чтоб не случилось циклического редиректа ваши существующие правила нужно будет исправить так, чтоб они явно указывали на конкретный файл. Типа:
RewriteRule ^([a-z]+)/([a-z]+)/(\d+)/(\d+)/(\d+) index.php?section=$1&time=$2&cat=$3&idnews=$4&page=$5 [L,QSA]
| кстати слеш в начале адреса редиректа указывать не надо. Я убрал его в коде выше.
P.S. кстати, а зачем у вас QSA? Что в адресе http://site.ru/news/present/2/88401/1 может быть еще GET-запрос? Т.е. http://site.ru/news/present/2/88401/1?var1=val1&var2=val2 возможно? Если нет - QSA уберите. | |
|
|
|
|
|
|
|
для: Sfinks
(17.03.2012 в 10:13)
| | Ошибка:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@site.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
|
| |
|
|
|
|
|
|
|
для: volodumir
(17.03.2012 в 15:32)
| | А в логе что? Эти 5 строк все видели. их можно было 3мя цифрами описать - 500. Вся информация в логе апача. | |
|
|
|
|
|
|
|
для: Sfinks
(17.03.2012 в 19:17)
| | Спасибо я разобрался. | |
|
|
|