Ответы пользователя по тегу htaccess
  • Как передать массивы get, post через htaccess ? ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с передачей массива post


    Почитайте на википедии что такое HTTP и что такое тело запроса. То что вы видите в PHP под этими суперглобальными $_SERVER/$_POST/$_GET/$_FILES и т.д. это все благодаря такой чудной вещи как SAPI (Server Application Programming Interface). То есть заболтивый PHP берет ваш HTTP запрос (который ему дали обработать WEB-сервера, апач тот же или nginx или еще кто) и вызывает соответствующее SAPI. То есть если у нас mod_php апачевский, то там все чуть по другому (SAPI для PHP много всяких разных). Если у нас php-fpm, то у нас там самый что нинаесть запрос, который нам проксировал какой nginx или тот же апач. Этот самый SAPI берет заголовки запроса и распихивает все по суперглобальным массивам. Он берет заголок с куками и распихивает его в $_COOKIE или видит что у нас POST запрос и он помечен как multipart/formdata и разбирает запрос, выковыривает файлики и сохраняет на диск заполняет массивы $_POST/$_FILES. Скажем если чувак отправит запрос с Content-Type: application/json (что модно стильно молодежно для мобильных клиентов) то PHP SAPI разобрать его будет не в состоянии и вам придется брать тело запроса и разбирать его самому.

    Работа вашего скрипта происходит только ПОСЛЕ того как SAPI все подготовит. а htaccess влияет на работу только до того как SAPI начнет работу, так что никаких POST массивов и т.д. Только HTTP запросы.

    Редиректы намного интереснее, так как это результат запроса. Ну то есть... у него нету тела. нет возможности сохранить тело запроса (ну как... есть... но клиент тоже это должен уметь и одним htaccess тут не обойтись) так что при редиректе сохранить и передать на новый урл исходные данные уже не выйдет. То есть можно, но повторюсь - это должно быть реализовано с двух сторон и тогда это не совсем редирект а больше похоже на то что вы отправляете форму двумя запросами. Один - узнает куда слать данные формы, второй отправляет.

    Такие дела.
    Ответ написан
  • Как прикрутить к MVC работу с Ajax?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как отправить POST запрос Ajax`ом, если URL такого вида:
    //mysite.ru/autorization/name/pupkin/pass/123


    А зачем извините вам тогда POST? Фигачте GET-ом. Вы понимаете вообще что вы таким образом выкладываете пароль на всеобщее обозрение? Никакие SSL не спасут.

    А так, возьмите любую библиотеку для маршрутизации либо разбирайте запрос на сервере. Но имхо вы делаете большую глупость отправляя таким образом данные. Да, вы можете в query string пихать данные при post запросе и урлы разбирать, но толку тогда от POST?

    Это грустно...
    Ответ написан
    2 комментария
  • Yii2: как задать DocumentRoot?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    не можно сменить

    Бр...

    Если есть доступ по SSH - симлинк на папку web и все. Не нужно плодить никаких кастылей.
    rm public_html && ln -s application/web public_html


    Если и симлинки нельзя (хотя это дико грустно), то просто перенесите точку входа на директорию выше. Кастыли с реврайтами - не очень хорошо.
    Ответ написан
    1 комментарий
  • Как реализовано?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Формально это называется ЧПУ, и крайне не рекомендую использовать для его реализации mod_rewrite, лучше реализовать раутер на уровне php, и тогда будет меньше проблем с переносом, скажем, с apache на nginx. Просто все запросы редиректить на index.php, а дальше пусть php разруливает.

    И начинайте уже пользоваться готовыми штуками, есть же микро-фреймворки и прочее, где все это уже давно реализовано...
    Ответ написан
    Комментировать
  • Seo-friendly url - для всего сайта или только для frontend-a?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    нужно использовать не seo а user-friendly структуру ссылок. Но это так.

    Если по делу, то все зависит от того, как они у вас реализуются. Если только силами rewrite сервера, то смысла особо нету, ибо это лишняя работа (если для админки), хотя и не помешает. Для авторизованных же пользователей все же стоит сделать.

    Если же у вас используется фреймворк какой, где есть вменяемая система маршрутизации и т.д. то естественно все ссылки делать человекочитаемыми.
    Ответ написан
    Комментировать
  • Yii2: каким образом запрос попадает в директорию web?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А куда указывает documentroot? не на web ли?
    Ответ написан
  • Мультидоменность и .htaccess?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Только через RewriteCond увы. Покрайнемере проблем с ним меньше. А у вас VPS/Dedicated или шаред хостинг?
    Ответ написан