За последние 24 часа нас посетили 17714 программистов и 1711 роботов. Сейчас ищут 924 программиста ...

mod_rewrite перенаправление запросов на index.php

Тема в разделе "PHP для новичков", создана пользователем Борис животное, 25 янв 2015.

  1. Борис животное

    Борис животное Активный пользователь

    С нами с:
    25 янв 2015
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте, Уважаемы форумчане.
    Как перенаправить все запросы на index.php я знаю.
    Вот код:

    RewriteRule .* index.php

    А вот как перенаправить все запросы, кроме файлов с форматами .jpg, .css, .js ?
    Буду очень благодарен за любую помощь.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    перед рулом поставить кондишн в котором перечислить отсеиваемые расширения
     
  3. Борис животное

    Борис животное Активный пользователь

    С нами с:
    25 янв 2015
    Сообщения:
    11
    Симпатии:
    0
    Что-то вроде этого? RewriteCond %{REQUEST_FILENAME} \.php|\.jpe?g|\.gif|\.png|\.bmp|\.css|\.js$ [L]

    Я не совсем понимаю как написать код, то что я сейчас на писал не работает должным образом
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    как ожидаешь что должно работать и как работает на самом деле?
     
  5. Борис животное

    Борис животное Активный пользователь

    С нами с:
    25 янв 2015
    Сообщения:
    11
    Симпатии:
    0
    Я хочу, чтобы файлы c указанными в RewriteCond форматами открывались напрямую в браузере, а все остальные перенаправлялись на index.php
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    нет, ты не понял. вот ты написал какую-то херню которую ты считаешь кодом. ты должен уметь обосновать как это должно работать, уметь описать как работает на самом деле и уметь сделать вывод почему не работает в нужном направлении. ты же программу пишешь. а программа это некий алгоритм который решает поставленную задачу.
    то что ты хочешь еще в первом сообщении было понятно. и было сказано в каком направлении двигаться. ты молодец двинулся. но по пути решил сломать себе ноги. к примеру я при всем своем опыте не знал что у кондишна есть флаг L. я даже полез перепроверил не рухнул ли мир. не, всё нормально. нет такого флага.
    ты пробовал например погуглить готовые решения?
     
  7. Борис животное

    Борис животное Активный пользователь

    С нами с:
    25 янв 2015
    Сообщения:
    11
    Симпатии:
    0
    Вы конечно меня простите, но мы на личности не переходили, конечно от этого мир не рухнул, но неприятно это осознавать. Вы можете возразить и сказать: я ведь "вам" помогаю... Но тем не менее...

    Я написал не херню, а код, пусть кривой, но это код.
    Я конечно уважаю то, что вы поучаете меня, но я ведь сюда не за этим пришел, увидев правильный код я и сам пойму что да куда. Мне нужно чтобы все это работало, а учиться работать с mod_rewrite у меня пока времени нет, до запуска проекта в любом случае займусь этим.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Борис животное, если нет времени учиться, то написал бы в раздел "сделайте за меня" или "free-lance".
    Просто посмотри в документации, то что посоветовали во втором сообщении.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты - новичок. у тебя не может быть дедлайна запуска проекта. ты еще только учишься. и учишься ты плохо. тяп-ляп накидал и кодом назвал и просишь его разменять на готовую рабочую версию. а я просто глянул и понял что ты очередной халявщик который не будет учиться и который поджигает себе жопу сроками сдачи проекта. не берись на проекты пока не знаешь как их делать. очевидно же.

    Код (Text):
    1. RewriteCond %{REQUEST_FILENAME} \.jpe?g|\.gif|\.png|\.bmp|\.css|\.js$ [NC]
    2. RewriteRule . - [L]
    первая строка определяет те самые суффиксы которые попадают под правило. флаг энси делает сравнение регистронезависимым.
    далее идет фейк-редирект. для всех отобранных правил идет рерайт из ниоткуда в никуда. то есть не модифицируется. и флаг эль гласит что рерайтер для ДАННОГО запроса должен прекратить разрешение и перейти к чтению источника данных.
    обрати внимание что я убрал дот-пхп из перечисления.
     
  10. Борис животное

    Борис животное Активный пользователь

    С нами с:
    25 янв 2015
    Сообщения:
    11
    Симпатии:
    0
    Я тестировал и по факту там не было .php просто забыл убрать когда скопировал сюда.
    Я скопировал RewriteRule и переименовал Rule в Сond, а о флаге совсем забыл, да, мой косяк. Флаг [NC] мне не нужен ни при каких условиях, даже файлы загруженные пользователем приобретают формат в нижем регистре и никак иначе.

    Впрочем я уже без вас разобрался во всем.