Перейти к содержанию
СофтФорум - всё о компьютерах и не только

.htaccess и обработка запрос на php


Рекомендуемые сообщения

Имеется директория /home/userdir/public_html

В настройках сервера на нее прописано несколько доменов

Так же в этой директории лежит файл index.php

Требуется сделать так, чтобы любой запрос на любой из этих доменов обрабатывался этим самым index.php

То есть независимо от того, был ли запрос:

domen1.com/

или запрос:

domen2.com/virtual/path/to/file.html

он должен обрабатываться одним и тем же файлом index.php

php скрипт обрабатывающий запросы я написал.

Вопросы:

1. Что прописать в файле .htaccess чтобы осуществить данную задумку?

2. Где должен лежать данный файл .htaccess - в /home/userdir или в /home/userdir/public_html ?

!!! Важно, чтобы работало и на Apache 1.x и на Apache 2.x и на IIS

Возможен вариант - под каждый сервер свой .htaccess

И еще один вопрос:

Можно ли сделать так, чтобы прописав один раз на папку домен, на эту же папку ссылался любой субдомен от этого домена?

То есть для веб-сервера запрос что_угодно.domen.com и запрос www.domen.com выглядели абсолютно одинаково.

Ссылка на комментарий
Поделиться на другие сайты

Для Apache это делается с помощью модуля mod_rewrite.

Хорошее описание можно найти здесь: http://www.opennet.ru/docs/RUS/mod_rewrite/

Файл .htaccess положи в public_html

Ссылка на комментарий
Поделиться на другие сайты

Про mod_rewrite я знаю.

Но хочется обойтись без него.

Мне не надо перезаписать запрос, мне надо тихо перенаправить его на выполнение одну файлу.

Просто у меня он обрабатывает весь запрос - как есть.

А если использовать mod_rewrite то php получит другой запрос, не то что запросили в браузере. То есть скрипт потеряет всю логику.

Немного объясню задачу поподробнее:

Есть неограничено много доменов.

И есть одна CMS

Нужны ЧПU

CMS выдает на каждый домен свой сайт

То есть множество сайтов, на одном движке, одной БД, но с разным контентом

Ссылка на комментарий
Поделиться на другие сайты

Честно говоря не знаю как сконфигурировать Apache чтоб перенаправлял все запроси к index.php ( но увечен что это можно ), но можно сделать твой скрипт ErrorDocument 404 так что когда напишуть адрес, который несуществуеть ( /virtual/path/to/file.html ) пользватель окажеться на index.php, а вы можете из $_SERVER получить адрес, где он пробувал зайти

Ссылка на комментарий
Поделиться на другие сайты

Darhazer: обработка ErrorDocument сильно загружает сервер, а я не могу себе это позволить.

Попробовал сделать через mod_rewrite как посоветовал Ramzes_

RewriteEngine ONRewriteRule .* index.php

работает, как надо.

Но есть ли аналог mod_rewrite для сервера MS IIS?

Если никто ничего не сможет предложить, то можно сделать запросы в формате: domen.com/?virtual/path/to/file.html

Хотя это и не самый красивый(удобный) вариант.

ЗЫ: насчет субдоменов вопрос решил сам, прописал в настройках хоста

ServerAlias domen.com *.domen.com

вроде работает

Ссылка на комментарий
Поделиться на другие сайты

Ты забыл параметры для RewriteRule

Правильнее будет так:

RewriteEngine ONRewriteRule .* index.php [L,QSA]

Здесь L - прекратить обработку правил после совпадения с данным правилом.

QSA - передавать index.php все GET и POST параметры.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...