![]() |
|
![]() ![]() ![]() |
|
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
Обсуждение моей проблемы я видел во многих местах,но нигде не было нормального ответа.
нужно: есть папка с файлами и папками, если идёт обращение к существующему файлу то тогда переадресовываем запрос на index.php в этой папке RewriteRule ^.*$ /index.php?%{REQUEST_URI} и второе правило: если обращаются к поддеректории либо к файлу в поддиректории то mod_rewrite ничего не делает. Надеюсь на вашу помощь. |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: нет Всего: 70 |
А документацию почитать лень?
|
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
||||
|
||||
Сумасшедший |
|
|||
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 13 Всего: 107 |
Уважаемый Всемогущий, а не соизволите ли Вы обратить свой взор с вершин блаженно-халявных к делам насущным и усладить свой взор небольшим отрывком из документации по mod_rewrite, который утолит Вашу жажду познаний и поможет решить вечный вопрос "ктобы сделал за меня"?
-------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
Сумасшедший,
![]() я давно на этом сайте,и знаю что здесь не любят халявщиков. Из моей репутации видно что я не только спрашиваю, Сумасшедший, пожалуйста найди мне линк с описанием именно моей проблемы чтобы я
Это сообщение отредактировал(а) Всемогущий - 10.5.2007, 20:35 |
|||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 1 Всего: 13 |
Первый линк по запросу "mod_rewrite" в русскоязычном Гугле (и в Яндексе, кстати, тоже) указывает на http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html. Если его вдумчиво прочитать, особенно раздел про RewriteCond, все должно встать на места.
Давать линки на англоязычные ресурсы с расширенным материалом специально не стал, пониманию это явно не поспособствует. Это сообщение отредактировал(а) xolod - 10.5.2007, 21:49 |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
это всё конечно здорово,
примерно такие ответы я видел везде ,куда меня приводил поиск эти сайты я уже видел, раз это так просто,так напишите пожалуйста эти 4 строки p.s мне это нужно для напсания статьи для винграда |
|||
|
||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: нет Всего: 1 |
Представляете, мне тоже это нужно(для моего движка). Читал документацию, вроде всё понял, но...
Пожалуйста объясните на русском ![]() |
|||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 1 Всего: 13 |
Хорошо, давайте попробуем разобраться. Объясните на пальцах, что вы хотите. Потому как с моей и ворда точек зрения
предложение не согласовано. Попробую предположить: если обращение происходит к файлу в корне сайта, переадресовываем на index.php в корне сайта. Если обращение глубже корня, то ничего не делаем. Так? |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
да,и если обращение к index.php тоже ничего не делаем
![]() |
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Я правильно понимаю:
если обращение идет на папку (например: some.ru/news/) то надо, чтобы был произведен редирект на index.php (например: some.ru/news/index.php) ??? -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
не принципиально ,пусть ничего не происходит.
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Всемогущий, так что делать? какой неявный редирект?
чтобы правильно задать вопрос, надо знать хотябы половину ответа(с). Не все знают половину ответа на свои вопросы. -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
||||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
а это не mod_rewrite делает. На сколько я понял должно помочь вот это: DirectoryIndex - переопределение файла по умолчанию.
-------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
мне кажется не то ,так как
нужно http://site.ru/somefile.ext(любой файл в корне) стало http://site.ru/index.php?file=somefile.ext а если что угодно находится находится глубже корня ничего не происходит http://site.ru/*****/somefile.ext - ничего |
|||
|
||||
GZep |
|
||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
усе, понял. Делаем:
важное замечание: если так делать то надо снять обязательно редирект с файла index.php. Если не сделать, то будет происхоить следующее: запрос к файлу /news.php выполняется редирект к файлу index.php вот так: /index.php?file=news.php НО редирект не останавливается и идет дальше(мы же теперь обращаемся к index.php): /index.php?file=index.php&file=news.php и так далее: /index.php?file=index.php&file=index.php&file=news.php пока сервер не зависнет... ![]() Это надо учитывать и сделать игнор файлу index.php (делаем это при помощи RewriteCond %{REQUEST_FILENAME} !-f) Итого имеем:
флаги дают возможность контролировать данные после "?" и не учитывать регистр символов.(какой из них что именно делает сейчас не помню). Теперь папки (в этом я не уверен!) там вроде надо просто:
Усе! ![]() -------------------- ![]() ![]() |
||||
|
|||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
тестирую здесь
нажимаю на файл ничего не происходит кажется ошибка здесь : RewriteCond %{REQUEST_FILENAME} !-f #не файл мне же нужно было чтоб он Жрал все файлы, а если поставить RewriteCond %{REQUEST_FILENAME} -f #любой файл то он обрабатывает файлы не только в корне ,но и везде |
|||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 1 Всего: 13 |
В файл .htaccess в корне сайта. В httpd.conf %{VARIABLE} использовать можно не всегда. Это сообщение отредактировал(а) xolod - 12.5.2007, 23:40 |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
я до сих пор легко получаю доступ к файлам которые лежат рядом с index.php
http://gazetron.ru/del/rewrite.txt где же
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
прочитай замечание, которое я написал в предыдушем своем посте. Вниматьльно только прочитай. Все файлы он жрать не должен. Добавлено через 1 минуту и 57 секунд чуть попозже освобожусь и посмотрю, что там не работает. -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
||||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 1 Всего: 13 |
Кажется мы с вами не понимаем друг друга.
Воссоздайте структуру на своем сервере, такую как в архиве (просто распокавав архив в корень сервера, лучше если там ничего больше не будет, для чистоты эксперимента). Там есть файлы в корне (file.html, twofile.txt) и папка dir с файлами. Попробуйте открыть каждый из них в браузере. Структура должна быть воссоздана от корня (DOCUMENT_ROOT, htdocs, etc), а не в какой-либо поддиректории. Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
![]() ссылка таже, просто скопировал всё туда. мне тоже кажется, наверное правда бывают затмения разума,во избежания затмения у меня, повторяю задание 1)правило: если запрошен существующий файл на сервере то передавать его имя ,в качестве параметра переменной,на index.php 2)исключение: если запрашиваемый файл находится глубже корня - ничего не делать Это сообщение отредактировал(а) Всемогущий - 13.5.2007, 15:22 |
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Хорошо. Значит файл index.php он тоже должен перенаправлять. правильно? Или все-таки не должен ВСЕ обрабатывать? -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
я это читал, предпологается что тот кто будет делать это учтёт. |
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
в последней строчки цитаты я написАл про то как будет это делаться. Добавлено через 5 минут и 20 секунд чуть не забыл: для того, чтобы мой код работал надо чтобы небыло файлов в корне кроме index.php на которые моглибы быть обращения. например если файла news.php в корне нет, то переделывается на index.php?file=news. Но если в корне есть файл news.php - редирект непроисходит. -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
||||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
к ним непосредственно браузер обращается? то есть, например, css или js файлы вообще не мешают. главное, чтобы не было файлов типа news.php. -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
какая разница css или js или ещё что нибудь любые файлы кроме index.php
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Всемогущий, я про разницу уже написАл. Пожалуйста, прочитай внимательней и вникни в проблему с этими файлами.
Это сообщение отредактировал(а) GZep - 14.5.2007, 13:55 -------------------- ![]() ![]() |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
я написал какая разница в том смысле что все файлы должны подподать под правило:если файл не находится в поддиректории,и не является index.php то должно происходить перенаправление на index.php ,а переменная {REQUEST_FILENAME} должна передаваться как
?file= {REQUEST_FILENAME} |
|||
|
||||
xolod |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 1 Всего: 13 |
Если вы помещаете файл не в корень, а поддиректорию, вам соответственно нужно изменять .htaccess.
Например я поместил архив и прошлого поста в директорию vingrad_htaccess и соотв. изменил .htaccess-файл.
Вам для другой директории тоже нужно будет изменить его, обяснять как, думаю не нужно :-). А лучше поставьте дома сервер, потестируйте у себя от корня, чтобы понять как оно работает. Не дастся эта статья вам без драки, надо было сначала основательно изучить доку по mod_rewrite. Это сообщение отредактировал(а) xolod - 14.5.2007, 15:45 |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
Статья не про mod_rewrite.
До меня дошло: если перефразировать правило: находится глубже корня это значит имя содержит слеш. :( Это сообщение отредактировал(а) Всемогущий - 14.5.2007, 16:36 |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: нет Всего: 13 |
как я понял идея не сбыточная
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
к сожалению такое бывает...
![]() -------------------- ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |