Тема: PHP vs mod_rewrite
Показать сообщение отдельно

  #6  
Старый 01.05.2005, 17:22
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
Сообщение от wsr  
Расскажи по подробней, о обработке ошибки отсутствия документа!!!
Как это все реализовать?
Все просто. Т.е. в htaccess пишешь что-то типа
ErrorDocument 404 /index.php
т.е. при ошибке будет редирект на index.php а там ты уже обрабатываешь серверную переменную SCRIPT_URI или SCRIPT_URL, смотря как там сервер настроен. И все.

НО! Переведя полностью nnm на ЧПУ с помощью php я понял что это не правильно. Ибо при смене заголовка на 404 (а он меняется апачем по любому, при испольхования данного метода) отчищается весь POST, а это плохо. Я юзаю <form method=post> говорите что угодно, но это самый безопасный метод передачи данных, у меня куча фактов, но сейчас не о этом. Я пришел к выводу что топ нужно было назвать на PHP vs mod_rewrite а PHP and mod_rewrite. Все ЧПУ формируется на PHP, но .htccess должен содержать следующий текст

ErrorDocument 404 /404.html
DirectoryIndex index.php
RewriteEngine on
RewriteRule ^/.*(.html|/)$ /index.php

В данном случае как раз, как можете заметить, все данные будут помещены в переменную SCRIPT_URI без передачи ее в строке. Для меня это идеально, ибо чем меньше передачи данных - тем меньше нагрузка на сервер, а для меня это критично. Либо htaccess может содержать что-то типа

ErrorDocument 404 /404.php
DirectoryIndex index.php
RewriteEngine on

RewriteCond %{THE_REQUEST} !\.css
RewriteCond %{THE_REQUEST} !\.jpg
RewriteCond %{THE_REQUEST} !\.gif
RewriteCond %{THE_REQUEST} !\.png
RewriteCond %{THE_REQUEST} !\?
RewriteRule ^/.*$ index.php?url_data=%{THE_REQUEST}

Но это все уже зависит от случая, когда что. Лично мне больше подходит первый способ. Скоро напишу статью, скоро.