Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Apache+mod_rewrite

Автор: Old Rocker
Дата сообщения: 29.01.2005 17:23
Вопросец про rewrite и поисковики.

В каком виде лучше будут индекситься страницы сайта (как показывает практика, выше всегда располагаются обычные html странички, интернет-магазины вообще с большим натягом показываются на 10-х страницах при поиске).

Так все же, что лучше (быстрее) будет индексироваться поисковиками и будет выше располагаться при поиске:

1. Страницы в чистом виде - */news.php?id=1
2. Страницы измененные mod_rewrite в виде - /news/1
3. Страницы измененные mod_rewrite в виде - /news1.html

2 и 3 соответственно выполняют 1, но скрыто, при помощи mod_rewrite. Вообще поисковики как относятся к проделкам mod_rewrite?
Автор: Tropin
Дата сообщения: 31.01.2005 15:00

Цитата:
Вообще поисковики как относятся к проделкам mod_rewrite?

Old Rocker
Зависит от типа реврайта!
если он происходит без подмены URL, то поисковик, впрочем как и любой другой клиент, просто не заметит подмены!
А если реврай выдаёт переход на другой URL, то зависит от поисковика!
Вот яндекс, вроде, не индексирует такие URL, а индексирует только конечный URL
Про гугл - не знаю....

И вообще большинство поисковиков не различают URL разных видов, если все они выдают один документ! приоритет скорее зависит от содержимого странички...
Автор: Old Rocker
Дата сообщения: 31.01.2005 23:34
Tropin Постой, а что такое тогда подмена url'a? Ведь вся суть rewrit'a - это создание более читаемого урла!

Цитата:
1. Страницы в чистом виде - */news.php?id=1
2. Страницы измененные mod_rewrite в виде - /news/1
3. Страницы измененные mod_rewrite в виде - /news1.html

Вместо (1) например (2) - это подмена?
Автор: Cheery
Дата сообщения: 31.01.2005 23:54
Old Rocker
А давайте не будем дублей создавать для обсуждения?
http://forum.ru-board.com/topic.cgi?forum=24&topic=4809#1
Автор: Vladroman
Дата сообщения: 03.02.2005 12:12
Можно ли проставить флаги (например, [R]) сразу для группы "RewriteRule'ов", и если можно, то как? А то прописывать одно и то же для полсотни строк весьма занудно.
Автор: majix
Дата сообщения: 20.02.2005 11:54
Как сделать так что бы адрес
http://localhost/news/index.php?subaction=showfull&id=1108885880&archive=&start_from=&ucat=1&

преобразовался, к примеру в /news/1108885880/ или /news/1/1108885880/

как я понимаю это делается с помощью mod_rewrite, но не один из вышеперечисленных способов не работает, или обрабатыванием файлом ошибкок.

у меня установлен Apache 2.0.43

может кто приведет 100% работающий пример.
Автор: denis333
Дата сообщения: 04.03.2005 20:26
Подскажите
надо вот что
esnm поддомен test.test.ru
и есть папка test.ru/test
вот сейчас сайт доустпен и проиндексирован и так и так
но мне надо чтобы както через mod rewrite настроит чтобы кто зашел по старому адресу test.ru/test/ .... автоматически был на test.test.ru
Автор: sghi
Дата сообщения: 05.03.2005 09:37
Дамы и Господа, подчкажите пожалуйста -- есть ссылка:
http://127.0.0.1/core.php?src=default&page=basic/page_&nr=1

Прописываю в .htaccess:


Цитата:
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^.htaccess$ - [F]
RewriteRule ^(.*)default/(.*)$ $1/core.php?src=default&page=$2


получаю ссылку вида http://127.0.0.1/default/basic/page_&nr=1

А как избавиться от "&nr=" в конце, но оставить цифру "1"? Что в .htaccess дописать?

Автор: Tropin
Дата сообщения: 05.03.2005 11:50
sghi
не совсем понятно какая ссылка в какую преобразовывается...
судя по правилу - вторая в первую...
Автор: sghi
Дата сообщения: 05.03.2005 15:23
Tropin
Совершенно верно!
было: http://127.0.0.1/core.php?src=default&page=basic/page_&nr=1
стало: http://127.0.0.1/default/basic/page_&nr=1
хочется: http://127.0.0.1/default/basic/page_1

Но "&nr=1" это такая переменная, которую невозможно прописать в .htaccess, она переодически меняется. В смысле, невозможно жестко прописать.
Автор: Tropin
Дата сообщения: 09.03.2005 08:43
sghi
Снова не совсем ясно: а что меняться-то будет?
то есть общий подход: берем и выделяем из URL динамическую часть (то что меняется), а после вставляем её в новый, например вот так:
RewriteRule ^(.*)default/(\w+)/page_(\d+)$ $1/core.php?src=default&page=$2/page_&nr=$3
Автор: nastavnik
Дата сообщения: 15.03.2005 02:06
Серьезный вопрос.
Адрес domen.ru/folder в folder.domen.ru
Либо как в автоматическом режиме заставить сервер при запросе folder.domen.ru загружать инфу с domen.ru/folder ?
Автор: Cheery
Дата сообщения: 15.03.2005 02:11
nastavnik
mod_rewrite тут не при чем
http://httpd.apache.org/docs/mod/mod_alias.html#redirect
Автор: nastavnik
Дата сообщения: 21.03.2005 01:22
С помощью mod_rewrite сделал из ссылки вида:
http://domain.com/folder/index.php?cat=1&subcat=2
ссылку:
http://domain.com/folder/1/subcat=2
теперь проблема с графикой на страничке:
изображение находится здесь:
http://domain.com/folder/img/image.gif
возможно ли сделать чтобы изображение могло загружаться с адреса?:
http://domain.com/folder/1/img/image.gif
Автор: Tropin
Дата сообщения: 21.03.2005 09:41
nastavnik
может так?
RewriteRule ^/folder/(\d+)/img/(.*)$ /folder/img/$2
Автор: phpbbmods
Дата сообщения: 25.03.2005 11:10
Всем привет,
Такая ситуация:

Код:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /index.php?id=$1
Автор: Cheery
Дата сообщения: 25.03.2005 23:01
phpbbmods

Цитата:
тут все ок, но нужно сделать
типа

"типа" не прокатит - объясни и покажи на примере, что хочется.
Автор: phpbbmods
Дата сообщения: 26.03.2005 13:26
Cheery
так смотри этим
RewriteRule ^(.*)/$ /index.php?id=$1
в браузер ссылку http://test.com/name/
виду страницу name
ставлю
RewriteRule ^page/(.*).html$ /page/index.php?id=$1
в браузер ссылку http://test.com/page/name1.html
вижу name1
а надо
RewriteRule ^page/(.*)/$ /page/index.php?id=$1
в браузер ссылку http://test.com/page/name1/
так
Автор: xGIN
Дата сообщения: 27.03.2005 07:48
Помогите сделать следующую вещь:
всех, у кого ip не ххх.ххх.ххх.ххх и не 127.0.0.1, отправляет в папку dir
можно использовать файл httpd.conf
сам я дошёл до следующего:

Код: <Directory "server_root">

Options Indexes FollowSymLinks
AllowOverride All

RewriteEngine On
RewriteCond %{HTTP:X-FORWARDED-FOR} !xxx.xxx.xxx.xxx
RewriteCond %{HTTP:X-FORWARDED-FOR} !127.0.0.1
RewriteRule .* http://%{HTTP_HOST}/dir/ [R,L]

Order allow,deny
Allow from all

</Directory>

<Directory "server_root/dir">

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny
Allow from all

</Directory>
Автор: phpbbmods
Дата сообщения: 29.03.2005 09:09
Люди добрые!
Прошу помощи! может я туплю и работать
как показал выше оно просто не может???
Заранее благодарю,
Автор: Mira
Дата сообщения: 29.03.2005 10:32

Цитата:
[/q]
[q]RewriteRule ^page/(.*)/$ /page/index.php?id=$1
в браузер ссылку http://test.com/page/name1/


RewriteRule ^page/([a-zA-Z0-9\ -]+)/$ /page/index.php?id=$1
может я конечно че-то не понял...
Автор: phpbbmods
Дата сообщения: 29.03.2005 10:59
Mira
получилось !!!!! спасибо огромное

Добавлено:
только поменял так
RewriteRule ^([a-zA-Z0-9\ -]+)/$ /index.php?id=$1
RewriteRule ^page/(.*)/$ /page/index.php?id=$1
вот пашет ок
но если значение index.php?id=$1 - nane/name
не пашет! а если просто nane то ок работает!
Можно исправить?
т.е идет имя страницы nane но если там слеш то фиги не пашет
Заранее благодарю,
Автор: coth
Дата сообщения: 04.05.2005 00:43
люди, а возможно ли в mod_rewrite'е
что-нибудь для следующего случая.

http://domain.ru/language/folder1/folder2/folderx/?options

в

http://domain.ru/foder1/folder2/folderx/?language&options


при том что количество папок может быть разное, включая ноль.

Автор: Tropin
Дата сообщения: 04.05.2005 10:17
coth
Возможно - всё!
Нужно просто конкренее вопрос задать. Каких папок может не быть при каких условиях... какие переметры в URL и т.д...
Автор: dacuan
Дата сообщения: 04.05.2005 12:09
coth
Могу ошибаться, но где-то так

Код:
RewriteCond %{REQUEST_URI} ^/language/(folder[0-9]/)+$
RewriteRule ^(language)/((folder[0-9]/)+)$ $2?$1&%{QUERY_STRING}
Автор: coth
Дата сообщения: 05.05.2005 00:33
проблема в том что папки могут быть а могут и не быть. именуются они не folder а по разному (folder просто для приметра)

то есть может быть

просто
/en/
или
/ru/

а может быть

/en/news/?news=xxx

а может быть

/ru/gallery/picture/?id=xx

соответственно в

/?lang=en
или
/?lang=ru

/news/?lang=en&news=xxx

/gallery/picture/?lang=ru&id=xx

Автор: dacuan
Дата сообщения: 05.05.2005 15:46
coth
Как говорил Tropin

Цитата:
Нужно просто конкренее вопрос задать.

Исходим из того, имена каталогов могут содержать маленькие английские буквы, цифры и знак подчеркивания.

Код:
RewriteCond %{REQUEST_URI} ^/([a-z]+)/([a-z0-9_]+/)+$
RewriteRule ^([a-z]+)/(([a-z0-9_]+/)+)$ $2?$1&%{QUERY_STRING}
Автор: coth
Дата сообщения: 08.05.2005 23:05
вообшем работает вот так
RewriteRule ^([en|ru]+)/(([a-z]+/)+)*$ /blabla/$2/?lang=$1%{QUERY_STRING}
без * на конце выдавал ошибку при наличии параметров
то есть если линк выглядит как /ru/news/ то всё работало, а при /ru/news/?id=xx выдавал ошибку...

но может ли мне кто-нибудь объяснить зачем надо и что это RewriteCond, вроде и без него работает...?
Автор: chulim
Дата сообщения: 12.05.2005 21:13
Не пинайте ежели было, а ткните носом.
Намучался уже с Apache2 for Win

Под Linux проблем нет, все работает корректно.
Под Win mod_rewrite заменяет системную переменную SCRIPT_NAME.

RewriteEngine On
RewriteRule ^c/(.*)\.htm$ /c.php/$1 [L]
RewriteRule ^ts/(.*)$ /ts.php/$1 [L]
RewriteRule ^(.*)\.htm(.*)$ $1.php$2 [L]

т.е. получаются ссылки вида http://localhost/index.htm.htm/page_2
при первом заходе на страницу SCRIPT_NAME index.php.
тискаем ссылку навигатора страниц и SCRIPT_NAME уже index.htm и mod_rewrite прилепливает еще один extension.

никто не натыкался на такое?

Автор: Davi
Дата сообщения: 19.05.2005 23:21
скажите плж как сделать 301 redirect для коткретного dinamic page?

скажем чтобы more.php?id=5620_0_10_0_C редиректился на more.php?id=15550_0_14_0_C (оба в корне)
я пробую прописать что то в это роде .. никак не хочет работать

Redirect 301 more.php?id=5620_0_10_0_C http://www.domain.com/more.php?id=15550_0_14_0_C

Страницы: 1234567891011

Предыдущая тема: Защита от атак: выбор фаервола и антивируса для сисадмина


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.