После mod_rewrite

12
darkdw
На сайте с 03.11.2005
Offline
113
1158

Наконец-то получилось сделать короткий url и поменять расширение на html с помощью mod_rewrite. Радости полные штаны...

Только... непонятно что дальше делать :|

В php и apache я полный профан, так что сильно не бейте. Вопросы:

1) Как я понял RewriteRule не дает абсолютного переименования а дает доступ к файлам с двух адресов, т.е. с

site.com/article.php?article_id=7777

и с

site.com/article7777.html (к примеру)

И, получается, чтобы перевести весь сайт на этот формат(html) нужно все ссылки на сервере переделывать с article.php?article_id=7777 на article7777.html Так?

2) Если на сайте очень много страниц, поисковики не офигеют от такого массового изменения(в смысле опустят по поисковым запросам)?

3) Поисковик будет видеть только rewrite'нутые файлы *.html или и *.php тоже и склеивать их?

4) Что будет если не все ссылки внутри сайта переделать на *.html, а некоторые оставить в *.php?

5) Если в поисковик добавлять адрес site.com, он же сразу полезет на index.php и оттуда по ссылкам. Можно ли как-то сделать главной index.php???

И вообще что мне делать дальше я вобще не пойму :(

Помогите, plz!

Hell is empty and all the devils are here.
Таггу x_x
На сайте с 31.10.2005
Offline
445
#1
нужно все ссылки на сервере переделывать с article.php?article_id=7777 на article7777.html

Дык а mod_rewrite то что делает?

☠️☠️☠️
R
На сайте с 12.08.2003
Offline
30
#2

а. Нужно сделать так, чтобы у каждой страницы был только один адрес (если не получается настроить так mod_rewrite, то можно проверять $_GLOBAL["REQUEST_URI"] внутри скрипта и возвращать 404 в случае, если адрес .php или же запретить их ндексацию в robots.txt)

б. Нужно, чтобы все ссылки вели именно на адрес из пункта а

в. Поисковики подумают, что просто произошла полная переделка сайта, офигеть не должны. Старые адреса со временем исключат из индекса, так как там 404 (или запрет в robots.txt)

г. Адрес главной страницы лучше оставить http://site.com/

(Две разные вещи: 1. URL '/' 2. адрес выполняющегося скрипта '/path/to/index.php'

С уважением, Григорий Рубцов, Онлайн-курс оптимизации сайта (http://tandem-online.ru/seminars/info/seminar748.html)
D
На сайте с 16.04.2005
Offline
14
#3

rgbeast

Не правильный подход. Нужно при анализе выдавать не 404, а 302 с редиректом на правильный адрес. Так индексация быстрее будет

Персональная территория (http://digs.alfaspace.net)
K. Ermakov
На сайте с 10.12.2004
Offline
328
#4
а. Нужно сделать так, чтобы у каждой страницы был только один адрес (если не получается настроить так mod_rewrite, то можно проверять $_GLOBAL["REQUEST_URI"] внутри скрипта и возвращать 404 в случае, если адрес .php или же запретить их ндексацию в robots.txt)

б. Нужно, чтобы все ссылки вели именно на адрес из пункта а

Учитывая невозможность полностью проконтролировать пункт б (как вы ссылки на других сайтах будете под себя менять?), считаю более подходящим вариантом возвращать на 404, а 301

С уважением, Константин Ермаков, absite.ru: онлайн кроссворды (http://absite.ru/); searchsuggest.ru: поисковые подсказки доставляют (http://searchsuggest.ru/).
K. Ermakov
На сайте с 10.12.2004
Offline
328
#5
выдавать не 404, а 302

А почему 302?

darkdw
На сайте с 03.11.2005
Offline
113
#6
Учитывая невозможность полностью проконтролировать пункт б (как вы ссылки на других сайтах будете под себя менять?)

Вот это самая главная проблема. Нужно сохранить некоторые документы на сервере со старыми ссылками(тот же каталог).

Я ВООБЩЕ не знаю этих команд, так что, если не трудно напишите какой код нужно писать в mod_rewrite чтобы возвращать на 302. Но все равно чтото я не пойму систему. Получается если ктото запросит страницу article.php?cat_id=777 его страница об ошибке скинет редиректом на article777.html? Это сервер не будет перегружать? И гдето я читал что это плохой мето - редирект через ошибки(поймойму даже на этом форуме).

з.ы. надыбал скрипт "rewriter", посмотрите, это то что нужно???

И, пожалуйста, обьясните поподробнее, я вобще в этом не шарю :)

zip 624.zip
D
На сайте с 16.04.2005
Offline
14
#7

K.Ermakov Да пардон. Я ошибся. Выдавать нужно 301.

darkdw 301 означает, что документ был перемещен (навсегда). Если докумнет был когда то индексирован, то при заходе робота для переиндексации страницы, последний поменяет автоматом в своей базе адрес на новый, а не добавит еще один. Нагрузки на сервер это не сделает, так как это единичная операция на страницу.

если не трудно напишите какой код нужно писать в mod_rewrite чтобы возвращать на 302.

Говорили выше, что данный редирект делать не на mod_rewrite, а на PHP при помощи header

darkdw
На сайте с 03.11.2005
Offline
113
#8
данный редирект делать не на mod_rewrite, а на PHP при помощи header

А можно поподробнее? В смысле что писать в header'е? Получается header должен быть индивидуальным для каждой страницы???

D
На сайте с 16.04.2005
Offline
14
#9

Там получается два header. Первый это выдача кода, второй - это редирект.

Например:

header("HTTP/1.1 301");

header("location: новый адрес");

darkdw
На сайте с 03.11.2005
Offline
113
#10
header("HTTP/1.1 301");
header("location: новый адрес");

1) header уникальный для каждой страницы?

2) в header'е писать абсолютный адрес?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий