Странное поведение Apachе... Думаю профи даже удивятся... Загадка для програмеров...

deseper

Новичок
Странное поведение Apachе... Думаю профи даже удивятся... Загадка для програмеров...

Apache бредит...:confused: офигеть...
В общем сделайте вот что... (Я работаю на ДЕНВЕР-3)

Создайте в корневой директории файл main.php, в нем напишите
PHP:
echo($_GET['url']);
Создайте файл .htaccess такого содержания:
PHP:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|jpeg|png|css|cur|doc|xls|txt)$ [NC]
RewriteRule ^(.*)$ main.php?url=$1 [QSA]
Теперь зайдите на имя_вашего_домена.ру/dir

Всё норм, на странице отобразилось dir и в адресной строке написано имя_вашего_домена.ру/dir

Создайте в корневой папке папку dir и сразу её удалите... Зайдите на http://имя_вашего_домена.ру/dir, всё как надо... в адресной строке написано http://имя_вашего_домена.ру/dir и на странице тоже написано dir

А теперь!!!
Создайте опять в корне папку dir и зайдите на http://имя_вашего_домена.ру/dir... Всё норм, на странице отобразилось dir, но в адресной строке - http://имя_вашего_домена.ру/dir/?url=dir

И снова удалите папку dir. и зайдите на http://имя_вашего_домена.ру/dir. Всё должно быть как прежде, но в адресной строке опять написано http://имя_вашего_домена.ру/dir/?url=dir, хотя папки уже нету... Перезагрузите денвер и попробуйте опять... То же самое, но папки-то нету... :eek:

Я конечно не утверждаю что апач тупит, возможно и я, 3 ночи за компом. Но... Помоему апач...

P.S. Кто разгадает загадку получит пиражок :D
Где-то в апаче записываются имена папок, которые существовали когда-то на сервере и были удалены. Но где???

P.P.S. Спросите зачем мне это надо? Затем чтобы папки не палились... А так они палятся в адресной строке, если так выдало - то папка существует или существовала... Хотя отображает main.php... :confused:

-~{}~ 05.02.10 07:28:

и вообще как сделать чтобы при существовании папки не перезаписывалась ссылка на http://имя_вашего_домена.ру/dir/?url=dir ?
3-ий день мучаюсь, пробывал кучу вариантов, подскажите...
Причем если зайти на http://имя_вашего_домена.ру/dir/ - то всё норм, ниче не перезаписывается, в переменной $_GET['url'] получается dir/
А если http://имя_вашего_домена.ру/dir т.е. без слеша в конце - то УРЛ переделывается блин... Вот кучу вариантов перерыл... Запрещение показа папки - не совсем то что мне нужно, т.к. если я захочу в ЧПУ сделать страницу с адресом http://имя_вашего_домена.ру/dir - то её тупо не покажет, покажет ошибку что доступ запрещен...
 

zerkms

TDD infected
Команда форума
Создайте опять в корне папку dir и зайдите на http://имя_вашего_домена.ру/dir... Всё норм, на странице отобразилось dir, но в адресной строке - http://имя_вашего_домена.ру/dir/?url=dir
всё правильно, ты сам такое правило написал.

И снова удалите папку dir. и зайдите на http://имя_вашего_домена.ру/dir. Всё должно быть как прежде, но в адресной строке опять написано http://имя_вашего_домена.ру/dir/?url=dir, хотя папки уже нету... Перезагрузите денвер и попробуйте опять... То же самое, но папки-то нету...
кэш в браузере? после удаления открой другим браузером и удивись.
 

deseper

Новичок
zerkms, какое правило? флаг [QSA]?
так без него не работает регулярка RewriteRule ^(.*)$
вот если так написать - RewriteRule ^([a-z0-9]*)$ то заработает... Но так нельзя русский ЧПУ сделать, как на википедии...
Эээ, про кеш в браузере спасибо, сейчас попробую очистить и посмотрю...

Ф@НАТ, офигеть, я тебя 4 года назад тут видел, когда под другим ником был, даже не помню под каким... И ты так же активно отвечал почти первым во всех темах. Респект!

Но всетаки подскажите... Хочу русский ЧПУ сделать, как на википедии и при этом чтобы можно было набрать http://site.ru/форум?action=создать...

Как сделать вот так:
http://site.ru/форум я уже знаю и без применения urlencode, urldecode,iconv и переадресации из скрипта, как я раньше делал.

Вот если я набираю http://fixi3.net/форум?action=create то всё норм и даже ссылку не приходится раскодировать в переменной. Ясное дело у меня в .htaccess прописана кодировка по умолчанию utf-8...

а вот если http://fixi3.net/форум?action=создать - то ссылка в адресной строке переобразовывается в http://fixi3.net/%D1%84%D0%BE%D1%80%D1%83%D0%BC?action=%F1%EE%E7%E4%E0%F2%FC и первая часть в переменной нормально отображается, т.е. по-русски, а вторую приходится расшифровывать...

Конечно можно попробывать расшифровать её в скрипте и сделать редирект, но хотелось бы всё через htaccess. Подскажите, а? Долго мучаюсь, хотябы наводки...

P.S. А на apache я зря гнал, извиняюсь. Просто 3 ночь за компом и туплю. Не понимал то ли я туплю, то ли апач...

P.S. Я любитель, а не профи. Хотя это и так понятно:)

-~{}~ 05.02.10 08:34:

Ф@НАТ, ну я считаю это важно... Во-первых - совершенно непонятно что за движок, а во-вторых - нафига папки светить, а в третьих - УРЛ получается не супер-ЧПУушный при таком раскладе, например на википедии я такой ерунды не видел :)
А хочется сделать красиво и понятно. И без ерунды в УРЛе и которая ненужна. Ну, надеюсь ты понял теперь для чего я это спрашиваю.
 

Фанат

oncle terrible
Команда форума
на википедии нет русского чпу. русский зык не поддерживается в адресах
смысла ни в одном из этих телодвижений я не вижу.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Может все же

RewriteRule ^(.*)$ /main.php?url=$1 [QSA]
 

zerkms

TDD infected
Команда форума
c0dex
смысл? базовый адрес для перезаписи указывается отдельной директивой (и это правильно), а не в каждом правиле.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Базовую строчку проглядел)
 

deseper

Новичок
Автор оригинала: c0dex
Может все же

RewriteRule ^(.*)$ /main.php?url=$1 [QSA]
не, так пробывал.. Адрес также перезаписывается + возникает Internal Server Error

Проблема ещё не решена :confused:
Кто знает в чем трабла?

-~{}~ 05.02.10 17:53:

Автор оригинала: *****
на википедии нет русского чпу. русский зык не поддерживается в адресах
смысла ни в одном из этих телодвижений я не вижу.
Всмысле не поддерживается? Щас уже и домены русские вроде регать начали или хотели регать.. типа гугл.ком
Ты наверное имеешь ввиду что это похоже на русское ЧПУ, а по правде символы такие - %D1%82%D1%80%D0%B0%D1%82%D0%B0%D1%82%D0%B0, просто выглядят по-русски. Ну мне главное чтоб выглядели по-русски... Как здесь -
http://ru.wikipedia.org/wiki/Заглавная_страница... Так то я сделал уже, но 2 проблемы возникли, которые решить не могу уже несколько дней.

В общем у меня такие вопросы:
1). Как чтобы при существовании папки ссылка не перезаписывалась на http://site.ru/wawa/?url=wawa
2). Как чтобы при добавлениее $_GET переменной со значением, написанном на русском адресс не менялся на непонятные символы?
 

Фанат

oncle terrible
Команда форума
Щас уже и домены русские вроде регать начали или хотели регать.
и выглядят эти домены, как xn--e1afmkfd
Как чтобы при добавлениее $_GET переменной со значением, написанном на русском адресс не менялся на непонятные символы?
никак.
URL кодировка не поддерживает русскоязычные символы
 

deseper

Новичок
Ф@нат, блин. Хватит загадками говорить. Ты ведь понял что я хочу. Я может быть не очень верен в формулировке, но ясное дело что я хочу чтобы непонятные наборы символов смотрелить по-русски. Т.е. Русский ЧПУ. Хотя я его уже сделал, но в чем проблема я обьяснил.
Подскажи хотябы как сделать чтобы при существовании папке не перезаписывался УРЛ на такой - http://site.ru/wawa/?url=wawa

P.S. русские домены как выглядят я не знаю, но наверное они всетаки по-русски пишутся то? просто в системе переобразовываются в такой вот код. Вот мне нужно сделать чтобы ссылка http://site.ru/форум/?url=создать не преобразовывалась в такие символы, а отображалась русскими буквами...

Ты ведь меня понял, просто видимо ты пытаешься мне показать что я формулировки неправильные использую... Расскажи, если знаешь, буду очень тебе благодарен!
 

dimagolov

Новичок
1). Как чтобы при существовании папки ссылка не перезаписывалась на http://site.ru/wawa/?url=wawa
ты не должен хотеть иметь папки с русскими именами. прими это как данность.
на 2-й вопрос тебе уже ответили, так что тема может быть закрыта, имхо.
 

deseper

Новичок
dimagolov, да нет, папки с русскими именами я иметь и не хочу, смысла не вижу в этом. Я говорю что папки с англ. именами светятся, ссылка переименовывается сразу если эта папка существует...
И на второй вопрос я тоже ответ не получил. Хотя ладно, тема закрыта.

-~{}~ 05.02.10 21:36:

проблему с поставлением в переменную $_GET[action] русского шрифта решил только что.
Осталось придумать как не палить папки. Если честно сил уже нету, всё перепробывал

-~{}~ 05.02.10 21:37:

но помоему вы сами не знаете, либо не понимаете что я хочу, либо стебетесь, если здесь всё просто, а я какую-то мелочь не вижу.
 
Сверху