Помогите с .htaccess

12
SE
На сайте с 24.12.2007
Offline
23
1144

У меня возник вопрос, возможно ли через .htaccess сделать так что бы ссылки вида NAME.saitname.ru/str1.html преобразовывались в sitename.ru/index.php?name=NAME&strid=1

Заранее благодарю за помощь.:)

Покупаю сайты для себя от 100$ (/ru/forum/289773) ICQ: 4семь4-2шесть2-563 Сайт для родителей (http://www.arbuzkarapuz.ru) | Здесь зарабатываю (http://zorkabiz.ru/?zorka=1907) | А тут продвигаю (http://blogun.ru/?r=4250)
SJ
На сайте с 16.03.2008
Offline
78
#1
SoftEl:
У меня возник вопрос, возможно ли через .htaccess сделать так что бы ссылки вида NAME.saitname.ru/str1.html преобразовывались в sitename.ru/index.php?name=NAME&strid=1

Возможно.

А если спросите "как бы сделать так, чтобы ссылки вида ... преобразовывались в ...", то:

1. Вас отправят воспользоватся поиском. Абсолютно заслуженно, между прочим.

2. Найдется добрая душа, которая таки напишет вам регулярку. Зря, имхо. ;)

Любимый хостинг (http://beget.ru?id=2902) How can we grow old when the soundtrack of our lives is rock-n-roll?
SE
На сайте с 24.12.2007
Offline
23
#2

Дак если вопрос в цене, легче ее назвать чем разводить извините демагогию про поиск, про добрые души.

Помощь за деньги тоже помощь:)

Просто зачем мне изобретать колесо если его ктото уже изобрел, и других проблем хватает:)

[Удален]
#3

предполагаю, что нельзя :(

но можно натравить все на файл индекс, а уже в нем понимать на какой домен пришел человек ;)

из строки $_SERVER['SERVER_NAME'];

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#4
SoftEl:
У меня возник вопрос, возможно ли через .htaccess сделать так что бы ссылки вида NAME.saitname.ru/str1.html преобразовывались в sitename.ru/index.php?name=NAME&strid=1

Заранее благодарю за помощь.:)

Пример:

saitname.ru/NAME1/str1.html -> sitename.ru/index.php?name=NAME1&strid=1

saitname.ru/NAME2/str2.html -> sitename.ru/index.php?name=NAME2&strid=2


# Запуск mod_rewrite
RewriteEngine on
RewriteBase /
Options +FollowSymlinks

RewriteRule ^([a-zA-Z0-9_\-]+)/str([0-9]+).html$ index1.php?name=$1&strid=$2 [r]
SE
На сайте с 24.12.2007
Offline
23
#5

Спасибо за совет, щас попробую.

Алексей Барыкин:
Options +FollowSymlinks

А это что? остальное понятно.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#6
SoftEl:
Спасибо за совет, щас попробую.

А это что? остальное понятно.

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

http://www.cherry-design.spb.ru/news/article.php?id=1&part=4

http://dhls.agava.ru/apache6.html

В примере указанном выше в принципе не нужна.

HandMaker
На сайте с 22.05.2007
Offline
83
#7

Алексей Барыкин, может и мне поможете?(если конечно не затруднит) Немного другая проблема.

http://www.site1.ru/some/somepage.php --> http://www.site2.ru/site1.ru/somepage.php

Всё до чего пока додумался


RewriteEngine On
Options +FollowSymlinks

RewriteRule ^(.*)$ http://site2.ru/$1 [P,L]

но правило не затрагивает сам хост (т.е. site1.ru) и обрабатывает только то что идет после '/' =(

335-девятьсот семьдесят-ноль34
SJ
На сайте с 16.03.2008
Offline
78
#8
HandMaker:
Алексей Барыкин, может и мне поможете?(если конечно не затруднит) Немного другая проблема.
http://www.site1.ru/some/somepage.php --> http://www.site2.ru/site1.ru/somepage.php
Всё до чего пока додумался

но правило не затрагивает сам хост (т.е. site1.ru) и обрабатывает только то что идет после '/' =(

RewriteRule ^(.*)/some/(.*)$ http://site2.ru/$1/$2 [P,L]

Может так сработает :)

R2
На сайте с 01.02.2007
Offline
28
#9
HandMaker:
Немного другая проблема.
http://www.site1.ru/some/somepage.php --> http://www.site2.ru/site1.ru/somepage.php
Всё до чего пока додумался
но правило не затрагивает сам хост (т.е. site1.ru) и обрабатывает только то что идет после '/' =(

А в данном-то случае зачем мудрить?

RewriteRule ^some/(.*)$ http://site2.ru/site1.ru/$1 [P,L]

ЗЫ странный УРЛ: http://www.site2.ru/site1.ru/somepage.php

ЗЗЫ если флаг P, то L избыточен (имхо)

HandMaker
На сайте с 22.05.2007
Offline
83
#10

sokol_jack, Raul21, спасибо за ответ. Но видимо я плохо сформулировал вопрос.

- есть физические папки на хостинге /site1/ и /site2/

- DNS нескольких доменов ссылаются на /site1/

т.е. для site1.ru, site2.ru, siteN.ru домашней папкой является /site1/ (по сути отображается на всех сайтах одно и тоже)

что я хочу сделать?

в корне папки /site2/ создать подпапки /site2/site1.ru/, /site2/site3.ru/, /site2/siteN.ru/

и передовать содержимое этих папок по назначению (т.е. чтоб у каждого сайта отображался свой контент).

Для тех кто знаком с хостером sweb.ru - хочу обойти ограничение на количество папок для доменов.

ЗЫ1

настройки апача мне не доступны

ЗЫ2

Raul21, sokol_jack, ваш вариант не работает. Я полагал что можно написать универсальный .htaccess для любых входящих доменов. Поэтому вместо


RewriteRule ^realSite1.ru/(.*)$ site.ru/realSite1.ru/$1 [P]
RewriteRule ^realSite2.ru/(.*)$ site.ru/realSite2.ru/$1 [P]
RewriteRule ^realSite3.ru/(.*)$ site.ru/realSite3.ru/$1 [P]
RewriteRule ^realSiteN.ru/(.*)$ site.ru/realSiteN.ru/$1 [P]

я пытался как-то выделить само название домена (хост) в виде правила. Например


RewriteRule ^(.*).ru/(.*)$ site.ru/$1.ru/$2 [P]

или


RewriteRule ^(http://|www.)(.*)/(.*)$ site.ru/$1.ru/$2 [P]

проблема в том (как я понял) что мод вообще не берет название сайта (хост). Он обрабатывает только то что идет после .ru/

т.е. если у меня урл http://www.realSite123123.ru/page.php?id=879&pid=87&userId8787

то обрабатывается только page.php?id=879&pid=87&userId8787

а как поймать realSite123123.ru???

12

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