Редирект/инклуд

Discussion in 'PHP' started by Ftopky!, 8 May 2009.

  1. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    Всем Здрасьте.

    Перейду сразу к проблеме. Допустим у меня есть сайт допустим xxx.ru при обращении через броузер не должно ничего открываться (или сообщение какое-нибудь)

    у меня на сайте есть папка /sites а там подпапки с сайтами site1 site2 и тп

    так вот. как сделать так, чтобы к примеру если человек вводит yyy.ru то он попадает на site1
    если ttt.ru то на site2 ?

    Примечание. фаил hosts изменен и там прописан выделенный IP (мой сайт) Реферера нет, так как человек не попадает на реальный сайт, а сразу на мой сайт.

    По каким еще параметрам можно "распределить" на какой сайт в соответствии с набранным сайтом попадет юзверь? заранее спасибо!
     
    1 person likes this.
  2. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    не то. это обычное перенаправление. мне нужно другое. читай мое 1ое сообщение внимательней
     
    2 people like this.
  3. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    может mod_rewrite тебе поможет.
     
  4. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    ога. вот только синтаксис подскажите.!

    RewriteEngine on

    RewriteCond %{REMOTE_HOST} ^odnoklassniki.ru.*
    RewriteRule ^(.*)$ ^vk/public_html/$1

    как правильно?
     
  5. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    825
    Likes Received:
    287
    Reputations:
    359
    так то это все настраивается в httpd.conf у апача и называется все это дело виртуальные хосты...
    пример:
    оба сайта должны записаны на один ip

    p.s. проверено на апаче под виндой
     
    _________________________
    #5 KIR@PRO, 8 May 2009
    Last edited: 8 May 2009
  6. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    у меня нет доступа к настройке АПАЧА!!!!!!!!

    и это тоже не то ((

    по ходу меня понял только 1 человек.

    это связано с

    RewriteEngine on

    RewriteCond %{REMOTE_HOST} ^odnoklassniki.ru.*
    RewriteRule ^(.*)$ ^mysubdomain_public_html/$1

    ...бла бла бла

    _http://www.beget.ru/art9.html

    а именно на урл "Директивы сложного перенаправления (mod_rewrite)"
     
    #6 Ftopky!, 8 May 2009
    Last edited: 8 May 2009
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ты хочешь получить тотальный контроль над браузерами и доменами? Сам-то вопрос свой осознал???? Т.е. я ввожу какой-то ХОСТ, а ТЫ хочешь контролировать, что я у себя ввел? Ты можешь контролировать только то, что принадлежит тебе (читай - твой ресурс), т.е. только то, что после http://твой_сайт/

    Так вот, как это ПОСЛЕ http://твой_сайт/ ввести ttt.ru???

    т.е. так будет: http://твой_сайт/ttt.ru???

    если так, то такой .htaccess:

    RedirectMatch (.*ttt.ru)$ http://www.microsoft.com$1

    где http://www.microsoft.com$1 - то место, куда ты хочешь переадресовать
     
  8. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    я же написал, что у жертвы заменен hosts и там стоит перенаправление на мой IP. :D тотальный ясно что не получить)

    и все таки не то(

    -----------------------------------
    Директивы сложного перенаправления (mod_rewrite)

    Модуль mod_rewrite имеющийся в составе Apache — это мощнейшее, интеллектуальное средство преобразования URL адресов. С ним возможны почти все типы преобразований, которые могут выполнятся или нет в зависимости от разных условий, факторов.

    Данный модуль представляет собой основанный на правилах механизм (синтаксический анализатор с применением регулярных выражений), выполняющий URL преобразования на лету. Модуль поддерживает неограниченное количество правил и связанных с каждым правилом условий, реализуя действительно гибкий и мощный механизм управления URL. URL преобразования могут использовать разные источники данных, например переменные сервера, переменные окружения, HTTP заголовки, время и даже запросы к внешним базам данных в разных форматах, — для получения URL нужного вам вида.

    Директива RewriteCond - определяет условие при котором происходит преобразование. RewriteCond определяет условия для какого-либо правила. Перед директивой RewriteRule располагаются одна или несколько директив RewriteCond. Следующее за ними правило преобразования используется только тогда, когда URI соответствует условиям этой директивы и также условиям этих дополнительных директив.

    Под обратной связью подразумевается использование частей сравниваемых URL для дальнейшего использования, т.е. как передачи параметров или для построения нового URL.

    $N
    (0 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу за текущим набором директив RewriteCond).

    %N
    (1 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteCond в текущем наборе условий.

    %{NAME_OF_VARIABLE}
    где NAME_OF_VARIABLE может быть одной из ниже приведенных переменных

    Ниже приводится список всех доступных переменных %{NAME_OF_VARIABLE} с их кратким описанием.

    HTTP_USER_AGENT
    Содержит информацию о типе и версии браузера и операционной системы посетителя.

    HTTP_REFERER
    Приводится адрес страницы, с которой посетитель пришёл на данную страницу.

    HTTP_COOKIE
    Список COOKIE передаваемых браузером

    HTTP_FORWARDED
    Страница непосредственно с которой перешел пользователь

    HTTP_HOST
    Адрес сервера, например beget.ru

    HTTP_ACCEPT
    Описываются предпочтения клиента относительно типа документа.

    REMOTE_ADDR
    IP-адрес посетителя.

    REMOTE_HOST
    адрес посетителя в нормальной форме — например, rt99.net.ru

    REMOTE_IDENT
    Имя удаленного пользователя. Имеет формат имя.хост, например, kondr.www.rtt99.net.ru

    REMOTE_USER
    То-же, что и REMOTE_IDENT, но содержит только имя. Пример: kondr

    REQUEST_METHOD
    Позволяет определить тип запроса (GET или POST). Должен обязательно анализироваться, т.к. определяет дальнейший способ обработки информации

    SCRIPT_FILENAME
    Полный путь к вебстранице на сервере.

    PATH_INFO
    Содержит в себе все, что передавалось в скрипт.

    QUERY_STRING
    Содержит строчку, переданную в качестве запроса при вызове CGI скрипта.

    AUTH_TYPE
    Используется для идентификации пользователя

    DOCUMENT_ROOT
    Cодержит путь к корневой директории сервера.

    SERVER_ADMIN
    Почтовый адрес владельца сервера, указанный при установке.

    SERVER_NAME
    Адрес сервера, типа kondr.beget.ru

    SERVER_ADDR
    IP-адрес вашего сайта.

    SERVER_PORT
    Порт на котором работает Apache.

    SERVER_PROTOCOL
    Версия HTTP протокола.

    SERVER_SOFTWARE
    Название сервера, например, Apache/1.3.2 (Unix)

    TIME_YEAR
    TIME_MON
    TIME_DAY
    TIME_HOUR
    TIME_MIN
    TIME_SEC
    TIME_WDAY
    TIME

    Переменные предназначены для работы со временем в разных форматах.

    API_VERSION
    Это версия API модуля Apache (внутренний интерфейс между сервером и модулем) в текущей сборке сервера, что определено в include/ap_mmn.h.

    THE_REQUEST
    Полная строка HTTP запроса отправленная браузером серверу (т.е., «GET /index.html HTTP/1.1»). Она не включает какие-либо дополнительные заголовки отправляемые браузером.

    REQUEST_URI
    Ресурс, запрошенный в строке HTTP запроса.

    REQUEST_FILENAME
    Полный путь в файловой системе сервера к файлу или скрипту соответствующим этому запросу.

    IS_SUBREQ
    Будет содержать текст «true» если запрос выполняется в текущий момент как подзапрос, «false» в другом случае. Подзапросы могут быть сгенерированны модулями которым нужно иметь дело с дополнительными файлами или URI для того чтобы выполнить собственные задачи.


    Условие это шаблон условия, т.е., какое-либо регулярное выражение применяемое к текущему экземпляру "Сравниваемая Строка", т.е., "Сравниваемая Строка" просматривается на поиск соответствия Условие.

    Помните: Условие это perl совместимое регулярное выражение с некоторыми дополнениями:

    Вы можете предварять строку шаблона префиксом '!' для указания несоответствия шаблону.
    '<Условие' (лексически меньше)
    '>Условие' (лексически больше)
    '=Условие' (лексически равно)
    '-d' (является ли каталогом)
    '-f' (является ли обычным файлом)
    '-s' (является ли обычным файлом с ненулевым размером)
    '-l' (является ли символической ссылкой)
    '-F' (проверка существования файла через подзапрос)
    '-U' (проверка существования URL через подзапрос)

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

    RewriteEngine включает или выключает работу механизма преобразования. Если она установлена в положение off этот модуль совсем не работает. Отметьте, что по-умолчанию, настройки преобразований не наследуются. Это означает что вы должны иметь RewriteEngine on директиву для каждого виртуального хоста в котором вы хотите использовать этот модуль.
    Синтаксис RewriteEngine выглядит следующим образом:

    RewriteEngine on | off

    # По умолчанию RewriteEngine off

    Используйте для комбинирования условий в правилах OR вместо AND. Типичный пример - перенавравление запросов на поддомены в отдельные катологи.

    RewriteEngine on

    RewriteCond %{REMOTE_HOST} ^mysubdomain1.* [OR]
    RewriteCond %{REMOTE_HOST} ^mysubdomain2.* [OR]
    RewriteCond %{REMOTE_HOST} ^mysubdomain3.*
    RewriteRule ^(.*)$ ^mysubdomain_public_html/$1

    RewriteCond %{REMOTE_HOST} ^mysubdomain4.*
    RewriteRule ^(.*)$ ^mysubdomain4_public_html/$1

    Для выдачи главной страницы какого-либо сайта согласно «User-Agent:» заголовку запроса, вы можете использовать следующие директивы:

    RewriteEngine on

    RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
    RewriteRule ^/$ /homepage.max.html [L]

    RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
    RewriteRule ^/$ /homepage.min.html [L]

    RewriteRule ^/$ /homepage.std.html [L]

    Для выдачи разных сайтов для разных браузеров согласно «User-Agent:» заголовку запроса, вы можете использовать следующие директивы:

    RewriteEngine on

    RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
    RewriteRule ^(.*)$ /mozilla/$1 [L]

    RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
    RewriteRule ^(.*)$ /lynx/$1 [L]

    RewriteRule ^(.*)$ /default/$1 [L]

    Общий синтаксис директивы RewriteRule выглядит следующим образом:

    RewriteRule Шаблон Подстановка [flag]

    # flag - необязательное поле указывающее дополнительные опции


    кто синтаксик подскажет? интересует REMOTE_HOST. referera увы нет..
     
  9. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    фаил hosts

    91.189.113.143 mail.ru
    91.189.113.143 www.mail.ru
    91.189.113.143 www.yandex.ru
    91.189.113.143 yandex.ru
    91.189.113.143 www.vkontakte.ru
    91.189.113.143 vkontakte.ru
    91.189.113.143 www.odnoklasniki.ru
    91.189.113.143 odnoklasniki.ru

    рефа ессно не будет. как реализовать на выделенном IP (91.189.113.143)(пример) чтобы определялось что чел ввел vkontakte.ru и перенапралял на /fakes/vk не меняя заголовка и тп. то есть чтобы на каждый фейк не регать новый IP
     
  10. Ftopky!

    Ftopky! Member

    Joined:
    25 Mar 2009
    Messages:
    0
    Likes Received:
    13
    Reputations:
    0
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www.odnoklassniki.ru$ [NC]
    RewriteRule (.*) /fakes/vk/$1 [R=permanent,L]

    вот что я имел в видУ! как теперь добиться чтобы при редиректе не менялся сайт в строке браузера?