ФорумРазработкаУстановка и администрирование ПОВебсервер → Детский вопрос по модреврайту

Детский вопрос по модреврайту

  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz Март 15, 2009, 4:20 п.п.

    Имеем в корне такую рулу:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php

    Как сделать так чтобы эта рула не работала внутри
    вложенной в корень папки /admin/


    RewriteEngine Off
    внутри папки /admin/ почему-то не прокатывает… скорей всего потому что корневой рул отрабатывает первым и index.php из корня успевает сделать свое черное дело…

    Как с этим бороться?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 4:52 п.п., спустя 31 минуту 46 секунд

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]

    попробуй так
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Март 15, 2009, 6:48 п.п., спустя 1 час 56 минут 20 секунд

    RewriteRule ^admin.*$ - [L]

    Кстати, не забудь еще про css, js, img и тому подобное
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 7:09 п.п., спустя 21 минуту 6 секунд


    RewriteRule ^admin.*$ - [L]

    Кстати, не забудь еще про css, js, img и тому подобное

    мой вариант работает только если файл на сервере не существует. например если запрашиваешь файл /css.css, и если он существует, то он не будет рерайтится, а если его нет, то запрос будет передаватся на индекс
  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz Март 15, 2009, 8:13 п.п., спустя 1 час 3 минуты 24 секунды


    RewriteRule ^admin.*$ - [L]

    Не сработало. Или я не так понял… я изменил хтаксесс в корне таким образом:
    RewriteEngine On
    RewriteRule ^admin.*$ - [L]
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php


    но всеравно при запросе mysite.ru/admin/
    я оказываюсь на mysite.ru/index.php

  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 8:20 п.п., спустя 7 минут 30 секунд

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin.*$ - [L]
    RewriteRule (.*) index.php

    хзхз
  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz Март 15, 2009, 8:32 п.п., спустя 12 минут 9 секунд


    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin.*$ - [L]
    RewriteRule (.*) index.php

    хзхз

    Если вы намекаете на то что рулу с флагом L надо опустить под условия как это сделано в вашем варианте, то вы не правы потому как это не дает ничего кроме того что верхние RewriteCond работают только на RewriteRule ^admin.*$ - [L] и RewriteRule (.*) index.php не отрабатывет по-человечески…
    В любом случае почему-то не удается отдаться на mysite.ru/admin/
    Не понимаю…
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 8:46 п.п., спустя 13 минут 40 секунд

    у меня все работает, переходит на admin если я ввожу /admin/…
    или те надо чтобы если есть admin в урле, то урл обрабатывался в /admin/index.php? или что те надо?
  • Cheese

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz Март 15, 2009, 9:31 п.п., спустя 44 минуты 52 секунды

    Попробую пояснить чего я хочу, подробно описав свою ситуацию:
    У меня в корне лежит хтаксесс с рулами, которые заворачивают любой урл вида mysite.ru/* на mysite.ru/index.php
    роутер на mysite.ru/index.php заботливо закодирован зендом(что здорово усложняет возможность в него вмешаться),
    он не знает о том что у сайта есть папка mysite.ru/admin/ (незнает намеренно) и при попытке обратиться к mysite.ru/admin/*
    дает мне 404…

    Если я пришибаю хтаксес лежащий в корне, тогда mysite.ru/admin/ у меня работает но вырубается роутинг по сайту
    (т.е. админкой я могу пользоваться только прибив хтаксесс в корне и сделав сайт не рабочим)…
    Умом я понимаю, что RewriteRule ^admin.*$ - [L] должна была бы решить проблему, но увы этого не происходит и
    я всеравно получаю на выходе 404

    В итоге я хочу чтобы на запрос mysite.ru/admin/* управление попадало куда угодно(лучше всего конечно на mysite.ru/admin/index.php) только не на mysite.ru/index.php, а в остальных случаях управление должен получать только mysite.ru/index.php

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 15, 2009, 9:40 п.п., спустя 9 минут 2 секунды

    Cheese, мд

    RewriteRule ^/admin.*$ - [L]
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 9:45 п.п., спустя 5 минут 12 секунд

    вот попробуй
    RewriteEngine On
    RewriteBase /
    RewriteRule ^admin.*$  admin/index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php

    по идее должно работать…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 15, 2009, 9:47 п.п., спустя 1 минуту 34 секунды

    ^/admin !!!!!!!!!!!!!!!!!!1
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz Март 15, 2009, 9:51 п.п., спустя 4 минуты 33 секунды

    phpdude, ДА КОНЕШНО ТЫ ЖЕ ПРОФЕССИАНАЛ )))))))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 15, 2009, 10:39 п.п., спустя 48 минут 17 секунд

    aivee, я ошибся чтоле?))
    Сапожник без сапог
  • ubica

    Сообщения: 530 Репутация: N Группа: Кто попало

    Spritz Март 16, 2009, 10:13 д.п., спустя 11 часов 33 минуты 6 секунд

    aivee, исправив, отрефакторим:


    RewriteEngine On

    RewriteCond %{REQUEST_URI} admin.*$
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^admin/?.* admin/index.php [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php

Пожалуйста, авторизуйтесь, чтобы написать комментарий!