| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > Регулярное выражение для Mod Rewrite |
| Автор: krundetz 1.8.2008, 10:50 | ||||
В общем есть вот такие директивы в файле .htaccess
на третьем денвере абсолютно спокойно работают так как надо пренес на сервер и началось сначало он вообще не захотели отрабатывать после чего я изменил эти дерективы на вот такие
все вроде бы заработало кроме одного файлы включающие в себя пробелы не находяться тоесть он пишет что такие файлы не найдены а если к ним обрашаться на прямую выдает 500 ошибку. Счас услышу что множество голосов о том чо пробелы не допустимы но с ними я поделсть ничего не могу. Эти файлы сделаны так что если их переименовать то они отказываются работать. Может кто нибудь что нибудь подскжет. З.Ы. Забыл добавить что когда эти файлы лежали в корне сайта и к ним обращались напрямую никаких проблем небыло и все работало. А разделение потребовалось для того что они ещё и от домена зависят и не хотят запускаться на других хостах, переименовать их тоже нельзя а они названы для всех доменных имен одинаково, пришлось их рассовывать по разным папкам, и придумывать такие реврайты так как они и запускаются только в том случае если лежат в корне точнее запускаются они и если происать что они лежат в кактологе но в таком случае взаимосвязи между ними разрываются. Кому интересно что это такое вот http://www.hotel-chebotarev.net/?m=10 |
| Автор: skyboy 1.8.2008, 13:27 |
это в URL-то пробелы? тогда почему именно пробел, а не "%20"? или в пути к файлу? |
| Автор: krundetz 1.8.2008, 13:33 |
| у сервера запрашивается именно так в место пробела подставляется 20% но почему он не выдается ни врублюсь все другие файлы выдаются нормально, и раньше выдавался без каких либо проблем файл на сервере есть как в директории так и вкорне |
| Автор: skyboy 1.8.2008, 13:49 |
| т.е. у тебя файл, на который надо перенаправлять, в имени имеет натуральный пробел? |
| Автор: krundetz 1.8.2008, 13:52 | ||
| да и я не могу его убрать так как этот файл можно будет скачать и открыть но с других таких же файлов на него перейти будет нельзя а там самая большая на мой взгляд функциональная приятность именно в этом вот что пишется в лог
|
| Автор: skyboy 1.8.2008, 15:07 |
что ты понимаешь под "перейти с других таких же файлов"? у тебя имена файлов вообще могут стать "1", "2", "3" и т.д.. все равно по запросу "какой-то%20файл" будет вызвано правило mod_rewrite, которое перебросит обращение на скрипт(например, РНР), который по этому "ненастоящему" адресу опрделит настоящее имя(1.ivp) и отдаст этот файл. или у тебя файлы запускаются на стороне сервера? 0_о кстати говоря, у тебя разве в имени файла не пробел, а "%20"? или все-таки пробел? |
| Автор: krundetz 1.8.2008, 16:19 |
| Я уже сам запутался. В общем ситуация в том что эти файлы .ivp они скармливаются флэшке в совокупности эти файлы это виртуальная экскурсия и перехды осушествляются внутри этой флэшки как в браузере куда переход жестко прописано в этих файлах. В общем там технология такая что эти переходы нормально работают только если файлы лежат в корне ну и плюс ко всему привязка к домену идет. В общем интегрировать на один домен эту икскурсию у меня получилось без всяких проблем все работает все замечательно и спробелами и сподчеркиваниями и с тере в название. Проблемы начались с созданием другой языковой версии на другом домене движек сделан так что все языковые версии лежат в одном месте и выбор языка полностью зависит от доменного имени. В о превых сразуже файлы привязаные к рускому домену откозались работать я сразуже начал выяснять что к чему выяснил про привязку. Поросил их прислать версии для разных доменов они прислали но вся жопа в том что они прислали версии с точно такими же названиями. Я попробовал сменить названия файлы загружаются но внутрение переходы выполнены так что они жестко привязаны к имеющимся названиям. В общем чтобы их поменять необходима уйма времени. Я сделал под разные домены разные папки и сбоисил файлы туда но опять наткнулся на то что внутрение переходы не работают. Вот и пришлось изобретать эти реврайты чтобы они подстовляли вместо жестко прописаного в файлах пути тот который ведет к файлам под каждый домен. Все вроде работает кроме тех файлов в которых есть пробел. Я уже умаелся над этим голову ломать почему и как хуже всего что на сервере стоит Apache 1.3.37 а у меня на рабочей машине 2.22 и реврайты которые я изночально написал превосходно работают на нем а на сервере их пришлось переделывать. Вот собственно вся история моих злоключений. Как точно файлы обрашаются друг к другу я незнаю это для меня черный ящик. А вообще глянь если интересно ссылка в первом посте есть. Там точно посмотриш что я имею в виду под внутреними переходами. Там сначала загрузиться флэшка а потом в неё файл панарамы и там в нем будут стрелочки на неё кликаешь и переходишь к следующей панараме. Тоесть переходы осуществляются внутри флэша без использования браузера |
| Автор: Mal Hack 1.8.2008, 16:49 |
| krundetz, давай-те поступим проще. Вы говорите: Хочу с такого-то адреса перенаправить на такой-то адрес. После этого мы вашу проблему совершенно спокойно решим. У вас по правилас логики не видно... |
| Автор: krundetz 1.8.2008, 16:58 | ||
вот кусок из log файла запросов к серверу где я обрашаюсь к проблемным файлам и к одному непроблемному
|
| Автор: krundetz 1.8.2008, 17:13 |
| Mal Hack, нужно следующие на домене есть папки vt_fr и vt_ru В них лежат файлы с одинаковыми названиями только предназначеные для разных доменов Файлы могут иметь в название латинские буквы цифры пробелы тире и подчеркивания. Вот вариант maestro stud_sleep_yellow.ivp, 2kon_lux_sleep.ivp и подобные. К ним идет обращение как www.hotel-chebotarev.net/2kon_lux_sleep.ivp Необходимо чтобы для .net файлы брались из папки vt_fr а для домена .ru из папки vt_ru Важно также то что если к файлам обращаться необходимо только так www.hotel-chebotarev.net а не hotel-chebotarev.net и соответственно для .ru www.hotel-chebotarev.ru а не hotel-chebotarev.ru Вот собственно и все что требуется и я думал у меня как раз получилось так сделать но как оказалось такой вариант является рабочим только для локальной машины сервер же брыкается и не хочет так работать. Спасибо. |
| Автор: Mal Hack 1.8.2008, 19:36 | ||||
При условии, что оба домена настроены на одну папку DOCUMENT_ROOT
Это еще зачем???? |
| Автор: krundetz 2.8.2008, 07:24 | ||
Я же говорил что там поставлена защита(зачем незнаю не спрашивайте весь сыр бор из за неё) по имени домена а имя домена прописано как www.hotel-chebotarev.net и подобное же для зоны ru. За регулярки спасибо такой вариант я ещё не пробовал. |
| Автор: Mal Hack 2.8.2008, 16:38 | ||
Вообще, это абсурд. Безопасность на уровне DNS - бред. Обращение идет к домену 3 уровня, а не второго... http://nowww.ru/ - почитай. В дополнение к авторам сайта скажу, что www еще в какой-то степени использовалось, чтоб сделать отличие с сетью gopher, которая на момент создания WWW была еще актуальна. Современные хостинги всегда поддерживают использование WWW, как alias'a к домену второго уровня. |
| Автор: krundetz 3.8.2008, 17:36 | ||
Это не мне говорить надо. Вообще не вижу смысла защищать эти файлы. Но так уж сделали разработчики и пожелал заказчик. А моя задача интегрировать это все на сайт. Как там сделана проверка я незнаю но действительно если написать просто hotel-chebotarev.ru работать не будет, насколько я понял там гдето в файле прописан жестко и он сверяет с кагого он был получен и при несовпадение не желает показываться а может там в качестве ключа к расшифровке файла применяется имя домена в общем сами эти файлы как уже говорилось выше делал не я. |
| Автор: Wolf1994 4.8.2008, 07:33 |
| krundetz, для такого тяжёлого случая советую поставить буферизацию вывода и пропатчить все имена файлов на нормальные перед отдачей клиенту. Не уверен, что это полностью подходит для Вашего случая, просто подаю идею. |
| Автор: krundetz 4.8.2008, 08:32 |
| Wolf1994, спасибо за идею но в моем случае действительно не подходит так как если поменять названия файлов то разорвутся внутрение связи между файлами ведь я не могу изменить внутрение содержание. |
| Автор: Wolf1994 4.8.2008, 10:12 |
| krundetz, что за связи, если не секрет? Гиперссылки на HTML страницах? |
| Автор: krundetz 4.8.2008, 11:00 |
| Wolf1994, не секрет там первоначально загружается зашифрованный видеофайл в флэш проигрыватель и уже в файле есть ссылки на другие файлы которые показываются в виде стрелок и уже щелкнув по одной из них можно перейти на другой файл имитируется как бы виртуальная экскурсия. Как это реализовано внутри незнаю понял только что там все жестко прописано и если наблюдается хоть одно несоответствие проигрыватель пишет что файл невозможно найти или что его невозможно расшифровать. Mal Hack попробовал предложенный вами вариант реврайта, к моему большому сожалению он не работает |