Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поисковики и mod_rewrite

345
01 мая 2007 года
vadim_k
312 / / 01.08.2006
Всем привет решил разобраться с mod_rewrite
Причина такая у меня есть страницы для разных городов, но данные о городе
передаются при помощи переменных $_GET переменных и хранятся в сессии,
но мне кажется для поисковиков это не имеет веса. То есть раньне у меня было 300 страниц
затем я переделал для 100 городов но наример яндекс проиндексировал всего 1550,
наверное он не понимает ведь адреса страниц выглядят одинаково за исключение одной переменной
Мне кажется если адреса преобразовать
Например из вида
site/avto/prod.php?gorod=110
в строку
site/avto/gorod110/prod.php
Про mod_rewrite читать начал только сегодня
Сегодня же поробовал залить на сервер .htaccess следующего содержаня
Engine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]
RewriteRule ^(.*)/gorod(.*)/(.*)$ $1/$3?gorod=$2
Сайт вообще перестал грузится...
Подскажите кто знает выражение

RewriteRule ^(.*)/gorod(.*)/(.*)$ $1/$3?gorod=$2

будет менять
site/avto/gorod110/prod.php
на
site/avto/prod.php?gorod=110
337
01 мая 2007 года
shine
719 / / 09.06.2006
В чем вопрос? :)
Имхо, гораздо лучше переделать url к виду: site/auto/city110.html

По регулярным выражениям на форуме говорилось уже очень много раз. Поищи.
28K
01 мая 2007 года
levis
4 / / 30.04.2007
Вложенные папки хуже индексятся поискивики не считают их важными
345
01 мая 2007 года
vadim_k
312 / / 01.08.2006
Блин ну подскажите плизз
написал вот такой .htaccess
Options -Indexes
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^(.*)/gorod(.*)$ $1/$2?Gorod=$2 [L]
RewriteRule ^(.*)[\/gorod](.*)$ $1/$2?id=$2
RewriteRule ^(.*)/gorod(.*)/(.*)$ $1/$3?gorod=$2

Дома на локальном хосте куда его только не вставлял и в корень и в другие каталоги
ничего не работает и ошибки в лог файл не пишет...?????
8
01 мая 2007 года
mfender
3.5K / / 15.06.2005
RewriteRule ^(.*)/gorod(.*)$ $1/$2?Gorod=$2 [L] - неправильно. Слэши в шаблоне нужно экранировать:

RewriteRule ^(.*)\/gorod(.*)$ $1/$2?Gorod=$2 [L]
345
03 мая 2007 года
vadim_k
312 / / 01.08.2006
Подскажите пожалуйста по какой причине может не работать mod_rewrite
дома на локальном хосте под WIndows.
Или как проверить
В лог никаких ошибок не пишется...
92
03 мая 2007 года
Тень Пса
2.2K / / 19.10.2006
под Windows много чего может не работать...

я лично не смог распинать mod_rewrite под Винду, и не стал париться....

проверь для начала. работает .htaccess вообще или нет... напиши в него deny from all и кинь в корень сайта, если 403 Forbidden, то тогда копай к mod_rewrite.... если нет, то копай настройки апача относительно .htaccess файлов

PS: а вообще, где-то на форуме такое уже обсуждалось....
345
03 мая 2007 года
vadim_k
312 / / 01.08.2006
Вроде заработало
только как то странно
строка
RewriteRule ^(.*)[\/gorod\/](.*)$ index.php [L]
выполняется
строка
RewriteRule ^(.*)[\/gorod\/](.*)$ avto/index.php [L]
тоже выполняется только файл не находит
сомотрб логи там написано что нет файла C:/www/html/avto а не C:/www/html/avto/index.php ПОЧЕМУ ТО
а если написать
RewriteRule ^(.*)[\/gorod\/](.*)$ $1/index.php [L]
то комп не то чтобы зависает, просто страницу открывает бесконечно долго, а всё остальное так тормозит
92
03 мая 2007 года
Тень Пса
2.2K / / 19.10.2006
бесконечно долго потому что ты попадаешь в цикл.. я так думаю...

сделай опции [R,L] вместо [L] и ты увидишь в строке адресной куда тебя пытается mod_rewrite перекинуть.
345
03 мая 2007 года
vadim_k
312 / / 01.08.2006
Спасибо помогло. Блин пробовал разные примеры с разных форумов, там написано вроде работают, у меня нет, видно у всех сервера по разному настроены..
Буду дальше мучатся...
345
04 мая 2007 года
vadim_k
312 / / 01.08.2006
Подскажите пожалуйтс а в чём ошибка
нужно из строки
http://localhost/110index-avto.html
сделать строку
http://localhost/avto/index.php?gorod=110
использую
RewriteRule ^(.*)([0-9]+)(.*)-(.*).html $1$4/$3.php?gorod=$2 [L]

а получается
http://localhost/11avto/index.php?gorod=0
почемуто цифры все не переносятся ......
8
05 мая 2007 года
mfender
3.5K / / 15.06.2005
Скорее всего, слэш мешает после host. Попробуй так:

RewriteRule ^(.*)\/(\d+)(.*)-(.*).html $1/$4/$3.php?gorod=$2 [L]
345
05 мая 2007 года
vadim_k
312 / / 01.08.2006
Спасибо всем
В итоге остановился на варианте
RewriteRule ^([a-z/]*)([0-9]+)-(.*).html $1$3.php?gorod=$2&%{QUERY_STRING} [L]
Адрес вида
http://localhost/avto/2-prog.html преобразуется http://localhost/avto/prog.php?per=2 (плюс пременные)
Адрес вида
http://localhost/2-prog.html преобразуется http://localhost/prog.php?per=2 (плюс пременные)
может кому пригодится...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог