Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FAQ. Apache. mod_rewrite. Начни с простого. Было много вопросов. Написал статейку. 
:(
    Опции темы
Mal Hack
Дата 27.8.2006, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(svalerik @  28.8.2006,  00:33 Найти цитируемый пост)
Про скрипт все понятно, а вот с алиасами - не совсем. Просто пока кроме перенаправления на основной домен ни чего не получил. 

В DNS на тот же IP что и осгновной домен ты прописываешь сабдомен или пишешь *.mydomain.com - это привязка любых сабдоменов.
Затем в Апаче, в настройке основного хоста ты пишешь: ServerAlias sub.mydomain.com и так все остальные. Тут вроде бы звездочка не прокатывает. Все. В таком случае, никакого перенаправления не будет, а при обращению к сабдомену будет открываться сайт основного домена, но для пользователя это будет сабдомен.
PM ICQ   Вверх
svalerik
Дата 28.8.2006, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Mal Hack @ 27.8.2006,  23:35)
Цитата(svalerik @  28.8.2006,  00:33 Найти цитируемый пост)
Про скрипт все понятно, а вот с алиасами - не совсем. Просто пока кроме перенаправления на основной домен ни чего не получил. 

В DNS на тот же IP что и осгновной домен ты прописываешь сабдомен или пишешь *.mydomain.com - это привязка любых сабдоменов.
Затем в Апаче, в настройке основного хоста ты пишешь: ServerAlias sub.mydomain.com и так все остальные. Тут вроде бы звездочка не прокатывает. Все. В таком случае, никакого перенаправления не будет, а при обращению к сабдомену будет открываться сайт основного домена, но для пользователя это будет сабдомен.

Спасибо, но насколько я понял - это задается в <VirtualHost> а он в свою очередь в server config - а максимум что имеем мы это .htaccess ;-(  написал хостеру, может он чем поможет, хотя врядли...
PM MAIL   Вверх
Mal Hack
Дата 28.8.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Хостер се это может сделать.
PM ICQ   Вверх
svalerik
Дата 28.8.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Mal Hack @ 28.8.2006,  08:37)
Хостер се это может сделать.

После того как получил доступ в панель управления - все создал, (а то клиент дал токо доступ на фтп :-) ) - спасибо за помощь в нужном направлении...
PM MAIL   Вверх
SamDark
Дата 28.8.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

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



Я в своё время написал немного о применении mod_rewrite. Может кому поможет...

http://rmc.net.ru/article/programming/goodurl/
http://rmc.net.ru/article/programming/steganografia/


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
coyl
Дата 26.9.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Еще один вопрос возник по мод рерайт:
У меня есть движок, работающий на двух языках, как положено. Чтобы не делать две копии я использовал мод рерайт таким образом (русский сайт лежит в папке site, а английский - должен в site/com):
Код

RewriteRule ^site/com(.*)?$ /site$1 [E=LAN:EN]

В скрипте я обрабатываю переменную $_SERVER['LAN'] и в зависимости от её наличия - использую тот или иной файл языка. Проблема в следующем - у меня есть еще преобразования далее, которые преобразуют урл из tralivali.html в index.php?param=tralival - в таком духе.
Так вот при обращении к /site/com/ переменная LAN не объявляется. Так же как при обращении к урлам, подлежащим дальнейшему преобразованию. работает правильно только /site/com/index.php а остальные вместо английского файла языка используют русский.
Заранее благодарен за помощь  smile 

Это сообщение отредактировал(а) coyl - 26.9.2006, 13:19
PM MAIL   Вверх
SamDark
Дата 26.9.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

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



coyl
Может лучше сделать что-то вроде:

Код

RewriteRule ^site/(ru|en)/(.*)?$ /index.php?lang=$1&url=$2


А потом просто обрабатывать $_GET['lang'] и $_GET['url']?


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
coyl
Дата 26.9.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Это сообщение отредактировал(а) coyl - 26.9.2006, 16:06
PM MAIL   Вверх
coyl
Дата 27.9.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всё. я разобрался в ошибке. Когда мы устанавливаем [E=LAN:EN], то при дальнейших редиректах $_SERVER['LAN'] привращается в $_SERVER['REDIRECT_LAN'], а далее в $_SREVR['REDIRECT_REDIRECT_LAN']. И так далее при следующих преобразованиях. Как это поправить я еще не смотрел, но вот в этом именно состояла ошиибка.

Это сообщение отредактировал(а) coyl - 27.9.2006, 16:50
PM MAIL   Вверх
AztEK
Дата 4.1.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хотел создать отдельную тему, но лучше сюда.

На домашнем сервере (Apache 1.3, Win32) не пашет mod_rewrite.
Расскомментировал строки
LoadModule rewrite_module modules/mod_rewrite.so
и
AddModule mod_rewrite.c
Создаю директорию, вставляю .htaccess
Код

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ a.php?mode=$1

и файлик a.php
Код рабочий, тестил на другом хосте.

Так вот, проблема в следующем: при обращении к этой директории, сервер возвращает ошибку 400 Bad Request. В лог-файле ничего не пишется.

В чем проблема, не понимаю. Помогите, плз


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Mal Hack
Дата 4.1.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Глянь сюда:
http://forum.vingrad.ru/topic-100827/unrea...uest/index.html
http://forum.vingrad.ru/topic-42980/unread...uest/index.html

Код, проверил, рабочий. Мог выкидывать Forbidden на пустом запросе, т.е. "/".
Глянь в настройках для .htaccess, возможно они корявые.
Да, и пример URI хочется увидеть на котором ошибка.
PM ICQ   Вверх
AztEK
Дата 4.1.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Глянул настройки. Да, там была проблема. В настройках хоста стояло AllowOverride All, вместо None.

Поправил, теперь на все запросы сервер отвечает просто 404.

URL: http://localhost/mod_rewrite/a.php <-- путь к файлу. Он выполняется.
Примеры запросов, на которые выползает 404:
http://localhost/mod_rewrite/test
http://localhost/mod_rewrite/test/
http://localhost/mod_rewrite/test.html

В логе остаются записи следующего вида:
[Thu Jan 04 21:08:39 2007] [error] [client 127.0.0.1] File does not exist: c:/program files/apache group/apache/htdocs/mod_rewrite/test/


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Mal Hack
Дата 4.1.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код

<Directory d:/home>
 Options Indexes Includes
 AllowOverride All
 Allow from All
#    Options FollowSymLinks
#    AllowOverride None
</Directory>

Код
<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
</Files>

Код

Options +FollowSymlinks -MultiViews


На крайняк.
PM ICQ   Вверх
AztEK
Дата 4.1.2007, 19:41 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет, не работает. Теперь снова 400.
С AllowOverride All - 400
С AllowOverride None - 404


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Mal Hack
Дата 4.1.2007, 19:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



При выше написанных настройках у меня все работает.
Попробуй другие примеры в качестве затравки, да и в ссылках, что я дал 400 ошибка отлавливается...
PM ICQ   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




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


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

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