LINUX.ORG.RU
ФорумTalks

<...> отрубить быдлокодерам руки <...>


0

0

повидал я сайтов за время работы в фирме по поддержке сайтов...

НО ТАКОГО Я ЕЩЕ НЕВИДЕЛ!!!!!
это просто капец полный... Началось все с того, что необходимо было запустить сайт
на локальном хостинге.
.htaccess -- ничего особенного
ErrorDocument 404 /err404.php
ErrorDocument 403 /err404.php
DirectoryIndex index.php index.html index.htm index.phtml
AddDefaultCharset windows-1251

index.php -- тоже обычный код - перенаправление запроса на страницу, URL из базы
query("SELECT dir FROM catalogue_fin WHERE pid=0 ORDER BY id LIMIT 1");
if($db->next_record()){header("Location: /".$db->Record["dir"]."/");exit();
}?>

А теперь фишка: в поле dir в таблице catalogue_fin в первой записи стоит значение 'index',
т.е.  осуществляется редирект на /index/ НО ПАПКИ index нет и не было никогда!!!!

Следовательно, согласно настройкам .htaccess, осуществляется обработка  404 ошибки криптом /err404.php
смотрим /err404.php (я уже ничего не вижу, слезы заливают глаза;) ):


Обычное дело, они все так пишут.

Teak ★★★★★
()
Ответ на: комментарий от Teak

>Может ты это с другим заголовком перепостишь, а? :) фсмысле?

tim2k
() автор топика

Ну пых-пыхеры - особые люди...

Хотя просто при ошибке отсылать на главную - распространённая практика, хотя ИМХО неправильная...

anonymous
()
Ответ на: комментарий от anonymous

ну ладно, можно сделать с /er404.php ССЫЛКУ на главную, но делать главную /er404.php ... этого я понять не в силах...

r-asian показывал мне магазин, который он переделывал, в котором на каждую группу товаров своя таблица была!!! "явно гуманитарий писал..." (С) r-asian.

2Модераторы: не убивьте пост, я теперь буду писать "...по самое летцо!" ;))

tim2k
() автор топика

Вообще-то довольно распространенная практика, дабы можно было вместо
http://site.com/index.php?cat=foo&page=bar
использовать более юзерфрендли урлы типа
http://site.com/foo/bar/

глянь на ту же lenta.ru как там ссылки устроены, уж не думаешь ли что там реально нагромождено развесистое дерево директорий, с index.* файлами в каждой?

Deleted
()
Ответ на: комментарий от grob

Re:

О, да, этой знатной фичи я как-то пока что не замечал, спасибо что обратил внимание :)

Teak ★★★★★
()
Ответ на: комментарий от Deleted

>уж не думаешь ли что там реально нагромождено развесистое дерево директорий, с index.* файлами в каждой?

Бугага! Ты это МНЕ рассказываешь? ;))

tim2k
() автор топика
Ответ на: комментарий от tim2k

Ну может конкретна там и не так, а вообще-то часто так делают.
Не всегда бывает mod_rewrite доступен / не все его асиливают.

Deleted
()
Ответ на: комментарий от Deleted

>не все его асиливают.

... и начинают насиловать мой моск! ААААААААААА!!! ;))

ИМХО, неча тогда за кодинг браться. А хостинг, где этот сайт лежит mod_rewrite поддерживает

tim2k
() автор топика
Ответ на: комментарий от tim2k

Это еще фигня... однажды меня один начинающий уеб-кодер попросил посмотреть почему гостевуха не работает... после того как я глянул код валялся под стулом полчаса.
Гостевуха была написана на javascript... на клиентском javascript... новые записи в нее добавлялись с помощью чего-то вроде document.getElementById("messages").innerHTML += blabla
Нарочно такое не придумаешь...

Deleted
()
Ответ на: комментарий от Deleted

> Не всегда бывает mod_rewrite доступен / не все его асиливают.

Это ж кем надо быть, чтоб не осилить mod_rewrite? Нет, я конечно, понимаю, что с помощью бубна mod_rewrite может хоть кофе варить, но ведь чтоб банально перенаправить /fuck/up/ на index.php?uri=/fuck/up/ не много ума надо ведь надо, а?

anonymous
()
Ответ на: комментарий от Teak

>Ещё один не слышал про mod_rewrite

Он есть не на всех хостингах. И применим далеко не во всех случаях. Скажем, у меня есть кеш с картинками. Если картинка есть - показываем. Если нет - формируем из основной базы, сохраняем на диск и показываем. Со второго просмотра смотрится статика. mod_rewrite тут не поможет :)

Хотя, в сабжевом случае это не причина :)

> и путях типа /index.cgi/foo/bar/...

А это, например, в lighttpd работать не будет.

KRoN73 ★★★★★
()
Ответ на: комментарий от tim2k

> r-asian показывал мне магазин, который он переделывал, в котором на каждую группу товаров своя таблица была!!!


Так это ж вполне нормальный partitioning :-)

Ron
()
Ответ на: комментарий от Ron

В проекте, где я админ, на каждого пользователя портала своя БД, вся переписка юзеров хранится у каждого участника переписки. Главный пыхпыхер говорит, что это потому, чтобы MySQL не тормозил с большими таблицами.

anonymous
()
Ответ на: комментарий от anonymous

>Это ж кем надо быть, чтоб не осилить mod_rewrite? Нет, я конечно, понимаю, что с помощью бубна mod_rewrite может хоть кофе варить, но ведь чтоб банально перенаправить /fuck/up/ на index.php?uri=/fuck/up/ не много ума надо ведь надо, а?

AFAIR, в mod_perl можно без всяких mod_rewrite такие вещи делать.

anonymous
()
Ответ на: комментарий от Deleted

ничего страшного в этом нет: бывают такие проекты, когда оооочень много всего взваливается на клиентский яваскрипт. и на это есть объективные причины.

Pi ★★★★★
()
Ответ на: комментарий от anonymous

>>Это ж кем надо быть, чтоб не осилить mod_rewrite? Нет, я конечно, понимаю, что с помощью бубна mod_rewrite может хоть кофе варить, но ведь чтоб банально перенаправить /fuck/up/ на index.php?uri=/fuck/up/ не много ума надо ведь надо, а?

>AFAIR, в mod_perl можно без всяких mod_rewrite такие вещи делать.

Мне кажется, что Вы неверно интерпретировали пост. mod_rewrite стоит особняком ото всех языком. Это просто обработчик директив с регулярными выражениями в .htaccess

anonymous
()
Ответ на: комментарий от anonymous

>Главный пыхпыхер говорит, что это потому, чтобы MySQL не тормозил с большими таблицами

Пральна. Ведь так написано в "PHP&MySQL за 24 минуты"?

anonymous
()
Ответ на: комментарий от KRoN73

> Хотя, в сабжевом случае это не причина :)

Остаётся только согласиться с твоими словами. :)

> А это, например, в lighttpd работать не будет.

Ну, речь шла явно не о lighthttpd. :) К тому же, насколько я понимаю, с fastcgi это и в lighthttpd работать будет.

Teak ★★★★★
()
Ответ на: комментарий от KRoN73

Я тут вдруг перечитал твой пост.

> Скажем, у меня есть кеш с картинками. Если картинка есть - показываем. Если нет - формируем из основной базы, сохраняем на диск и показываем. Со второго просмотра смотрится статика. mod_rewrite тут не поможет :)

Очень даже поможет. Если нет файла (тестируется по -f), то переписываем на скриптик /get-image.cgi/$1, который этот файлик во-первых отдаст, а во-вторых создаст на диске (вторую часть можно после форка, чтоб клиент не ждал). В следующие раз условие -f уже будет выполняться и отдастся статика. Всё.

Teak ★★★★★
()
Ответ на: комментарий от Teak

>В следующие раз условие -f уже будет выполняться и отдастся статика.

Оп-па. Пошёл RTFM :) Не знал про такой ключик...

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.