За последние 24 часа нас посетили 16603 программиста и 1646 роботов. Сейчас ищут 963 программиста ...

Проблем с mod rewrite

Тема в разделе "Прочие вопросы по PHP", создана пользователем CeperaI99I, 17 окт 2009.

  1. CeperaI99I

    CeperaI99I Активный пользователь

    С нами с:
    19 июн 2009
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Талгар
    Проблема следущая:
    использую mod rewrite. С латинскими буквами полный порядок, как только в URL появляются русские символы, возникает ошибка - 404 not found "localhost/(кракозябры)".
    содержимое .htaccess:
    Код (Text):
    1. RewriteEngine on
    2. Options +FollowSymLinks
    3. RewriteRule ^([а-яА-Я_0-9a-zA-Z]+)$ index.php?app=$1 [L]
    так вот, как только в браузере ввожу строку "localhost/моястраница", возникает выше описанная ошибка.
    Если "localhost/mypage" - все работает отлично.
    .htaccess и index.php сохранял в разных кодировках но все-равно не помагает.
    please HELP!
     
  2. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Как можно .htaccess и index.php сохранить в разных кодировках? Если используется латиница то файл в любом случае будет аськи код.
     
  3. CeperaI99I

    CeperaI99I Активный пользователь

    С нами с:
    19 июн 2009
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Талгар
    Эт я конечно загнул. Но вопрос в другом - почему mod rewrite отказывается работать с кирилицей!
     
  4. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Коряво конечно но у меня такой вариант сработал

    RewriteEngine on
    Options +FollowSymLinks
    RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯa-zA-Z0-9\%]+)$ index.php?tag=$1 [QSA]
     
  5. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Это похоже то что тебе нужно.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>
     
  6. CeperaI99I

    CeperaI99I Активный пользователь

    С нами с:
    19 июн 2009
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Талгар
    Forbidden.You don't have permission to access on this server.
    так все работает спасибо
     
  7. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    У меня оба хорошо работают. В файле нет ничего относящегося к доступу. Первая директива включает модреврайт, вторая проверяет существование файла. Третья непосредственно перенаправляет запрос. Возможно у тебя где то еще определены права доступа.
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Логи апача так сложно посмотреть?
    Их можно настроить чтобы показывали преобразование mod_rewrite
     
  9. soniclord

    soniclord Активный пользователь

    С нами с:
    25 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    Товарищи, у меня такая же проблема, только мне нужно GET-запрос получить а не перейти в папку.

    index.php:
    Код (Text):
    1. <?php
    2.     echo $_GET['req'];
    3. ?>
    .htaccess:
    Код (Text):
    1. RewriteEngine on
    2. Options +FollowSymLinks
    3. RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯa-zA-Z0-9\%]+)$ index.php?req=$1 [QSA]
    ввожу:
    Код (Text):
    1.  http://192.168.0.2/rew/блабла
    - хотелось бы получить блабла в echo...
     
  10. soniclord

    soniclord Активный пользователь

    С нами с:
    25 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
  11. soniclord

    soniclord Активный пользователь

    С нами с:
    25 ноя 2007
    Сообщения:
    8
    Симпатии:
    0
    я весь инет в поиске ответа облазил...
     
  12. CeperaI99I

    CeperaI99I Активный пользователь

    С нами с:
    19 июн 2009
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Талгар
    теме Up в связи с новым вопросом.
    Как заставить mod_rewrite обрабатывать таким образом:
    все запросы кроме тех которые адресованы директории, к примеру "resource".
    То есть
    запрос: "http://localhost/Админ" обработка "http://localhost/index.php?tag=Админ".
    НО
    запрос: "http://localhost/resource" обработка "http://localhost/resource".
     
  13. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
     
  14. CeperaI99I

    CeperaI99I Активный пользователь

    С нами с:
    19 июн 2009
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Талгар
    Спасибо.