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

.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 параметры.

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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