Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Mod_rewrite для разделения на папки, 404 ошибка 
:(
    Опции темы
psworld
Дата 21.1.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



Хочу сделать разделение по папкам в зависимости от домена. Сделал:

Код

RewriteEngine On
Options +FollowSymlinks

RewriteCond %{ENV:REDIRECT_MYFLAG} ^$
RewriteCond %{HTTP_HOST} ^www\.demo\.ru$
RewriteRule ^(.+) %{HTTP_HOST}$1 [E=MYFLAG:1]
RewriteRule ^www\.demo\.ru(.*) /my%{REQUEST_URI} [L]


Протестировал на локальном домене - работает, закачал к хостеру - выдает запрос "my/my/" (хотя должно быть "my/") и 404 ошибку.

Пробовал еще так:

Код

#Если кто запрашивает _demo/ напрямую - прикрываем
RewriteCond %{ENV:REDIRECT_MYFLAG} ^$
RewriteRule ^_ [F]

RewriteCond %{HTTP_HOST} ^www\.demo\.ru$
RewriteRule ^[^_] _demo%{REQUEST_URI} [E=MYFLAG:1]


Попадаю в корень, а не в _demo/

Короче, кто знает, помогите.
PM MAIL WWW   Вверх
Mal Hack
Дата 21.1.2007, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



По конкретнее задачу опиши, что куда перекидывать надо.
PM ICQ   Вверх
psworld
Дата 21.1.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



Все запросы www.demo.ru должны идти в папку demo/, запросы с домена demo2.ru в папку demo2/ - разделение, чтобы файлы с разных сайтов не хранились вместе.

Можно было бы сделать через http.conf, но к нему нет доступа. smile
PM MAIL WWW   Вверх
Mal Hack
Дата 21.1.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



По-хорошему, это через ServerAlias настраивается.
PM ICQ   Вверх
psworld
Дата 21.1.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



Ну да smile, у меня хостинг колокейтед... Нужно запустить несколько сайтов, под каждый домен хостинг заводить - глупо, а свой сервер - дорого.

Если добавить строчку после всего:

Код

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


работает, но не хочу чтобы было криво.

Еще один вопрос. Как прикрыть доступ к папке /demo при запросе напрямую?


PM MAIL WWW   Вверх
Mal Hack
Дата 21.1.2007, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Зачем? Есть один хостинг. На него вешается несколько доменов, которые настраиваются через ServerAlias на нужные папки.

Добавлено @ 18:52 
Код
# Заглушка
RewriteRule /demo/? index.php [F]


RewriteCond %{HTTP_HOST} demo\.ru$
RewriteRule ^.+$ /_demo%{REQUEST_URI} [L]

PM ICQ   Вверх
psworld
Дата 21.1.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



Как? Я хостеру напрямую задал вопрос - сказал только через mod_rewrite. Уже 3 месяца ищу ответ :\.

Пример на последней строчке зацикливается. Internal Server Error.

Понял кое-что.
Сначала по запросу сервер заходит в папку demo/, переписывает запрос - добавляет еще раз demo/. Что в денвере, что в интернете.
PM MAIL WWW   Вверх
Mal Hack
Дата 21.1.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Да, хостер не подарочек... Ладно, будем решать через mod_rewrite.


Код

RewriteRule ^/_demo1/?(.+?)$ /_demo1/$1 [L]
RewriteRule ^/_demo2/?(.+?)$ /_demo2/$1 [L]
RewriteRule ^/_demo3/?(.+?)$ /_demo3/$1 [L]

RewriteCond %{HTTP_HOST} demo1
RewriteRule ^.+$ /_demo1%{REQUEST_URI} [L]
RewriteCond %{HTTP_HOST} demo2
RewriteRule ^.+$ /_demo2%{REQUEST_URI} [L]
RewriteCond %{HTTP_HOST} demo3
RewriteRule ^.+$ /_demo3%{REQUEST_URI} [L]


PM ICQ   Вверх
psworld
Дата 21.1.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



А можно как-либо связать условия RewriteCond по "и"?
PM MAIL WWW   Вверх
Mal Hack
Дата 21.1.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Код
RewriteRule ^/_(demo1|demo2|demo3)/?(.+?)$ /_$1/$2 [L]

RewriteCond %{HTTP_HOST} (demo1|demo2|demo3)
RewriteRule ^.+$ /_%{HTTP_HOST}%{REQUEST_URI} [L]


PM ICQ   Вверх
mishaSL
Дата 22.1.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



У меня сделано так и все работает:

Код

RewriteCond %{HTTP_HOST} ^www\.site1\.ru [NC]
RewriteRule ^(.*)    http://www.site1.ru/folder_for_site1/$1 [P,L]

RewriteCond %{HTTP_HOST} ^www\.site2\.ru [NC]
RewriteRule ^(.*)    http://www.site2.ru/folder_for_site2/$1 [P,L]



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
coyl
Дата 23.1.2007, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 13.6.2006

Репутация: нет
Всего: 1



Вообще, конечно, это бред. ИМХО. Это базовая функция Апача - виртуальные сервера. Хостера гнать в шею если он предлагает эту тривиальнейшую задачу решать модрерайтом. Это только лишние затраты производительности (причем ИМХО нехилые).

Опять-таки. это работает ТОЛЬКО для киентов поддерживающих протокол HTTP 1.1 так как в 1.0 нет такого заголовка HOST

Это сообщение отредактировал(а) coyl - 23.1.2007, 03:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.1006 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.