За последние 24 часа нас посетили 18758 программистов и 1607 роботов. Сейчас ищут 969 программистов ...

Точка входа на сайт

Тема в разделе "PHP для новичков", создана пользователем Dimon2x, 2 апр 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Структура

    555.jpg

    У меня сайт открывается, не на прямую blog.loc, а надо ещё дописывать public, вот так blog.loc/public/ Это всё я настраивал с помощью htaccess и настроил на локальном хосте у себя в openserver, что бы корень сайта была именно папка /public. Теперь когда выложил на хостинг, то уже сайт не работает, как настроить, что бы при заходе на сайт, корневая папка была public?

    htaccess в корне

    Код (Text):
    1. RewriteEngine on
    2. RewriteCond %{SCRIPT_FILENAME} !-f
    3. RewriteCond %{SCRIPT_FILENAME} !-d
    4. RewriteCond %{SCRIPT_FILENAME} !-l
    5. RewriteRule ^(.*)$ index.php/$1
    так же и в папке public
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    RewriteRule ^(.*)$ public/index.php/$1 ?
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, support@hostland.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    --- Добавлено ---
    логи пустые
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    даже сайт хостинга тормозит
    Код (Text):
    1.  
    2. RewriteEngineOn
    3. RewriteBase/My-Project/
    4.  
    5. RewriteCond%{THE_REQUEST}/public/([^\s?]*)[NC]
    6. RewriteRule^%1[L,NE,R=302]
    7.  
    8. RewriteRule^((?!public/).*)$ public/$1 [L,NC]
     
  5. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou ничего не изменилось
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. RewriteCond %{REQUEST_URI} !^/public
    2. RewriteRule ^(.*)$ /public/$1 [L]
    Или вот так
     
    Dimon2x нравится это.
  7. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou добавил слеш перед пабликом

    RewriteRule ^(.*)$ /public/index.php?$1 [L,QSA]

    теперь страницы загружаются, то нет стилей и картинок
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    RewriteRule ^(.*)$ /public/$1[L,QSA] а так не хочет? без index.php? nginx?
     
    Dimon2x нравится это.
  9. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @nospiou у меня апач
    --- Добавлено ---
    @nospiou заработало, спасибо
     
  10. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Прописывайте им абсолютный путь
     
  11. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @Deonis так и есть, всё начинается со слеша
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ну с верху может стоять nginx который отдает статику. Хостинг без nginx в 2к18 ну так себе. do 5ye стоит если не принципиально попробуй плюс vestacp
     
  13. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Если кому надо, вот так должно быть

    корень

    Код (Text):
    1. RewriteEngine On
    2.  
    3. RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
    4. RewriteRule ^ %1 [L,NE,R=302]
    5. RewriteRule ^(.*)$ /public/$1 [L,QSA]
    паблик

    Код (Text):
    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteCond %{REQUEST_FILENAME} !-f
    4. RewriteCond %{REQUEST_FILENAME} !-d
    5. RewriteCond %{SCRIPT_FILENAME} !-l
    6.  
    7. RewriteRule ^(.*)$ index.php?$1 [L,QSA]
     
    AlexProg, igordata, acho и ещё 1-му нравится это.
  14. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    +1 за то, что поделились решением. А то у некоторых привычка типа: "Проблему решил, закройте вопрос". ;)
     
    AlexProg нравится это.
  15. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    ещё посоветовали вот это
    Код (Text):
    1. RewriteRule !\.(js|ico|gif|jpg|png|css|pdf|mov|mp3|woff2)$ index.php
    но это я не пробовал
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В настройках виртуального хоста, в Document Root добавить /public.
     
  17. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Поддерживаю.

    Костыль. Для вменяемых корень=паблик. Код же размещается «за пределами корня» (выше, рядом и т.п.), хотя точка входа или .htaccess могут быть размещены и в корне, если доступный уровень конфигурирования не позволяет это сделать иначе.
     
    #17 miketomlin, 3 апр 2018
    Последнее редактирование: 3 апр 2018