Apache Правильный роутер

DevConf 2017 - видео с конференции, успей до 17 июля | Проверенные VDS на SSD в Европе и России

Тема в разделе "Хостинг, colocation, VPS, VDS, Nginx, Apache", создана пользователем tonchikp, 4 янв 2017.

Метки:
  1. tonchikp

    tonchikp Новичок

    Сообщения:
    42
    Ваш город:
    Cheboksary, Russia
    Adress:
    Cheboksary, Russia
    Country:
    Location on Map:
    PHP:
    RewriteEngine on

    RewriteCond 
    %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    .* index.php
    1) Как правильно перенаправить все запросы на роутер, но тем не менее исключить перенаправление для стилей, js-скриптов, картинок, музыки, видео и прочего

    2) Пробовал в регулярках поставить ^ и (css|js), не помогло, возможно я чего-то не понимаю

    3) Почему на разных сайтах встречаются разные ключи, то [L], то [NC], в связи с этим ещё вопрос, написал правила для того чтобы защитить картинки от вставки на другие сайты, указал ключ [L], следующими строками идёт код который написал выше, будет ли он действовать после этого ключа, не очень понимаю как этот ключ работает (документацию читал, на разных сайтах искал ответ, но не понял дальше того что написано)

    4) Опять же на некоторых сайтах рекомендуют схему index.php?param1=value1&param2=value2, как я понимаю получается GET-запрос, хотелось бы узнать мнения по этому поводу, удобно ли потом его разбирать, стоит ли этим направлением идти, как-то некрасиво выглядит и вроде если понадобится query_string, а знак вопроса уже занят, или они могут вместе быть?

    5) Сходу ситуация, например нужно показать отчёт, на основе query_string скрипт получает год и выводит отчёт за этот год. Или есть более правильный способ?
     
  2. WoLFiks

    WoLFiks Не курю...

    Сообщения:
    158
    Adress:
    Vladivostok, Russia
    Country:
    Location on Map:
    PHP:
    RewriteEngine on
    RewriteCond 
    %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    .* index.php
    При вышеприведенной схеме легко узнать какая CMS или фреймворк используется при разработке сайта, если это не критично, то абсолютно нормальная схема.

    Встречал вариант, когда сделано вообще просто
    PHP:
    RewriteEngine on
    RewriteRule 
    .* index.php
    А во вложенных директориях, например с картинками и JS, которые лежат ниже doc_root:
    PHP:
    RewriteEngine off
    Можно использовать вообще одну строчку:
    PHP:
    RewriteEngine On
    RewriteRule 
    !\.(gif|css|jpe?g|js и т.д.)$ index.php [L,NC]
     
    tonchikp нравится это.
  3. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    3.867
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map: