RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 267
от 25.02.2006, 21:57

Администратор:Калашников О.А.
В рассылке:Подписчиков: 235, Экспертов: 38
В номере:Вопросов: 1, Ответов: 2


Вопрос № 35772: Здравствуйте, уважаемые эксперты. Пишу в .htaccess следующее. ------------- RewriteEngine On # ниже правило для урлов содержащих расширение .php # (редирект на index.php), то есть надо, чтобы родное # расширение не проходило....

Вопрос № 35.772
Здравствуйте, уважаемые эксперты.
Пишу в .htaccess следующее.
-------------
RewriteEngine On
# ниже правило для урлов содержащих расширение .php
# (редирект на index.php), то есть надо, чтобы родное
# расширение не проходило.
RewriteRule ^(.+).php)$ /index.php [R,L]
# а тут меняем псевдорасширение на .php...
# скрываем технологию короче
RewriteRule ^(.+).exe$ $1.php
-------------
В общем циклит все это дело. Без первого правила все нормально работает. Или я просто не понимаю, в каком порядке и до какой степени идет замена (без флагов):
1) замена идет по всем правилам, пока не будет совпадений. Тогда понятно от чего циклит.
2) замена идет сверху вниз по порядку...
3) Ваш вариант :) ...
Отправлен: 20.02.2006, 03:14
Вопрос задал: $ham (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: RedDevil
Здравствуйте, $ham!
Это гораздо проще сделать через настройку апача. В конфиге можно указать, какой файл, каким интерпритатором запускать. Можешь хоть pl делать, хоть свое какое-нибудь расширение - rdp, и все будет работать и не надо извращаться.
Ответ отправил: RedDevil (статус: 6-ой класс)
Отправлен: 20.02.2006, 08:05
Оценка за ответ: 5
Комментарий оценки:
Это понятно, что AddHandler проще, но допустим не всякий халявный хостинг это позволяет, а mod_rewrite хоть и геморно, но полезная штука!

Отвечает: Straight
Здравствуйте, $ham!
Поставьте самым первым такое правило:
RewriteRule ^index.php - [L]
Тогда и циклить не будет
Ответ отправил: Straight (статус: 8-ой класс)
Отправлен: 20.02.2006, 09:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо за совет, но не то. Надо, чтобы ссылки с расширением php не проходили, т.е. если вручную расширение в браузере на .php поменять, чтобы такой вариант не проходил.
Как я прочел здесь http://www.listsoft.ru/article/338/ «Правил может быть несколько, при этом все они применяются в порядке их описания. Когда правила заканчиваются, они вновь начинают применяться с самого начала, и этот цикл продолжается до тех пор, пока "срабатывает" хотя бы одно из правил.».
При этом мне не понятно действие флага [L] «останавливает процесс преобразования, и текущая ссылка считается окончательной». Такое ощущение, что это действует только для текущего правила (внутри него) и потом все равно «гуляет» по всем правилам.
Краткое резюме: ПОЛНЫЙ ГЕМОРРОЙ.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

В избранное