| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > mod_rewrite связка с файлами |
| Автор: Vardoulacha 5.12.2011, 07:38 |
| Вообщем вот такая трабла, есть правило # http://domain.ru/page_news.php # http://domain.ru/news RewriteRule ^([^/]*)$ ./page_$1.php [L] т.е. указывая имя папки подгружается нужный файл, но если такого файла нет, как тогда это узнать и перекинуть на error.php чтобы показать ошибку 404? там после этого есть еще другие правила, там идет поиск нужных слов в запросе и переброс на другие файлы которые заранее известны если указать несуществующий файл то выдает 500 ошибку с множественной переадресацией (ну это видно из-за продолжения выполнения всего htaccess и всех правил) |
| Автор: WolfAlone 5.12.2011, 16:31 | ||
Эти строки означают, что правило будет работать только в том случае, если такого файла или директории нет. Думаю, Вас это натолкнёт на правильную мысль. Более подробно ответить не могу, т.к. я к сожалению не специалист по Apache. |
| Автор: Vardoulacha 5.12.2011, 17:00 |
| оооо... дельная мысль пойду пробовать |
| Автор: Vardoulacha 5.12.2011, 17:27 |
| мдааа нет не прокатит, дело в том что %{REQUEST_FILENAME} хранит полный путь к файлу, а мне нужно в этот путь еще вклинить "page_" перед тем запросом который передали и путем до корня, и вот это как раз похоже не сделать средствами .htaccess |
| Автор: WolfAlone 5.12.2011, 17:33 |
| Не могу быть уверен точно, но мне кажется, что это всё-таки можно сделать средствами .htaccess. Прикрепляю к посту первый попавшийся мне на глаза файл .htaccess который как раз решает примерно подобную Вашей задачу. Файл был любезно предоставлен авторами PHP-Framework'a "Kohana 3.2". Если Вы более подробно опишите задачу (зачем так делать?), и инструменты для её решения - возможно я смогу Вам помочь ещё чем-то. Например, в большинстве фреймворков (PHP) есть такая штука как "Роутинг". Или, например, можно сделать какой-нибудь PHP-файл, который будет принимать все запросы и либо переадресовывать человека на нужный файл, либо на страницу 404... |