- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Люди добрые, подскажите, уже в ступор впадаю :(
настроен рерайт
RewriteRule ([^.]*)[.]* index.php?file=$1 [L,QSA,T=application/x-httpd-php]
который в моем понимании, ловит файлы в корневой директории и передает скрипту имя файла.
Когда обращаюсь к
http://localhost/15.htm
все работает как надо, но когда по ссылке с кирилицей, сформированой urlencode(), например
http://localhost/1+%F1%F2%E0%F2%FC%FF+%E2+%EA%EE%F0%ED%E5.htm или
http://localhost/2_%F1%F2%E0%F2%FC%FF_%E2_%EA%EE%F0%ED%E5.htm
то получаю :
Error 403
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
Почему так и как это исправить?
Та же комбинация через подкаталог работает нормально:
RewriteRule ([^.]*)/([^.]*)[.]* index.php?dir1=$1&file=$2 [L,QSA,T=application/x-httpd-php]
http://localhost/2/1+%F1%F2%E0%F2%FC%FF+%E2+%EA%EE%F0%ED%E5.htm
vantala, работайте в utf-8, с ним проблем нету
http://localhost/1+%D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F+%D0%B2+%D0%BA%D0%BE%D1%80%D0%BD%D0%B5.htm
сам по себе приведенный Вами реврайт не способен вызвать ответ с кодом 403
403 Forbidden
При отсутствии полных данных остается только гадать
либо у Вас в .htaccess есть правило, которое после приведенного реврайта (а может и до него) отдает ответ с кодом 403 (посмотрите строки RewriteRule с флагом F)
либо 403 код возвращает index.php в данной ситуации (при адресе содержащем типа ...%F1%F2%E0...)
вторую версию легко проверить, создав файл index1.php со следующим кодом
<?php
print '<pre>';
print_r($_GET);
print '<pre>';
?>
и изменив строку реврайта
RewriteRule ([^.]*)[.]* index1.php?file=$1 [L,QSA,T=application/x-httpd-php]
если будет работать со всеми тремя приведенными адресами (у себя проверил - работает), то 403 код отдает index.php
siv1987, а если нужно создать движок в версии именно 1251, что прикажете делать?
gormarket, нет никаких полных данных, в хтаксесе только это правило, никаких F нет
index.php тоже примерно вашего содержания - выводит поступившие переменные и все, ваш тоже попробовал - то же самое.
Если у вас эта связка работает, остается грешить только на мою сборку XAMPP, попробую обновиться...
Большое спасибо за содействие.
а если нужно создать движок в версии именно 1251, что прикажете делать?
Тогда сидеть и придумывать костыли
RewriteRule ^win/([^.]*)[.]* index.php?file=$1 [L,QSA,T=application/x-httpd-php]
У меня Apache/2.2.4 (Win32) - тоже не работает.
gormarket, а на чем у вас работало?
gormarket, а на чем у вас работало?
у меня локально версия более ранняя
Apache/1.3.33 (Win32) PHP/4.4.4
но на хостинге тоже работает, там
Apache/2.0.63-lk.d (Unix) ...
не уверен что поможет, но все таки попробуйте добавить флаг NE
RewriteRule ([^.]*)[.]* index.php?file=$1 [L,QSA,NE,T=application/x-httpd-php]
'noescape|NE' (не экранировать URI при выводе)
Этот флаг не даёт mod_rewrite применять обычные правила экранирования URI к результату преобразования. Обычно, специальные символы (такие как '%', '$', ';', и так далее) будут экранированы их шестнадцатиричными подстановками ('%25', '%24', и '%3B', соответственно); этот флаг не дает это делать. Это позволяет символам процента появлятся на выходе