Доброго времени. Использую си-му Linux развернул проект Yii2 на виртуальном хосте сайт работает по адресу localhost/mysite.com/web/index.php При попытке перевести адреса на ЧПУ руководствуясь советами из сети проделал такие действия: создал два файла .htaccess, один в корневой папке с содержанием: PHP: RewriteEngine on RewriteRule ^(.+)?$ /web/$1 Второй в папке web с содержанием: RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.ph и по пути config/web.php раскоментировал urlManager, содержание строки: PHP: ... 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ... после этого главная страница открывалась по адресу localhost/mysite.com/web, а при переходе на вкладки about/ или contacts/ выпадает ошибка Not Found The requested URL /yii2.min/web/site/about was not found on this server. Можете посоветовать рабочую инструкцию для включения ЧПУ? спасибо!
Но я только начал знакомится с Yii 2 смотрю разные уроки и про документ рут, к сожалению, еще не слышал! По этому совсем не имею представления куда он ссылается!)) Где это можно посмотреть?
@RumusBin на официальном сайте Yii, есть guide, лучше с него начни http://www.yiiframework.com/doc-2.0/guide-index.html
Не получается включить виртуальный хост! Уже 5 мануалов попробовал, результата ноль. Все равно через localhost открывается. Может кто нибудь ссылочкой поделится как настроить этот apache2 что бы без localhost открывался сайт? Я на винде пробовал в OpenServer все работает !!!
документацию по apache2 я не читал, ибо не собираюсь открывать хостинг или, ни дай бог, быть его администратором. Я думаю, что можно обойтись каким нибудь разовым, толковым руководством по настройке и на этом прекратить свое общение с сервером! На хостингах все настроено, в крайнем случаем можно обратиться в службу поддержки, на винде есть OpenServer. Ну а вот на линуксе полная ж... но я все же рассчитываю на поддержку знающих людей, или, хотя бы, тех, кто уже оказывался в подобных ситуациях.
Ок, всем спасибо! Пока слишком глубоко нырять не буду!))) Залил приложение на хостинг, работаю через него. Думаю данную тему исчерпанной на данный момент.
правильное решение там всё просто, достаточно уметь тяп ляп, не для продакшена, будешь лучше понимать как сайты работают
Правильное решение это: 1) Открыть httpd.conf в нем раскомментировать строку Include conf/extra/httpd-vhosts.conf 2) Открыть файл httpd-vhosts.conf в нем написать следующее <VirtualHost *:80> ServerAdmin admin@gmail.com DocumentRoot "/srv/http/" ServerName localhost ServerAlias localhost <Directory "/srv/http/"> Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerAdmin admin@gmail.com DocumentRoot "/srv/http/yii2/basic" ServerName yii.loc ServerAlias yii.loc <Directory "/srv/http/yii2/basic"> Require all granted </Directory> </VirtualHost> ServerName и ServerAlias, а также Directory указываем соответственно те которые нужны вам. в нем сначала указал куда обращаться при запросе localhost затем куда обращаться при запросе yii.loc 3) Открываем файл hosts и пишем следующее: 127.0.0.1 localhost.localdomain localhost 127.0.0.1 yii.loc 4) Сохраняем все что написали 5) В терминале пишем sudo systemctl restart httpd.service Теперь мы настроили виртуальный хост и можно переходить к ЧПУ 6) Делаем по инструкции synthetica.com.ua/yii2-seo-url/ Все готово. Надеюсь кому-нибудь поможет.)
DocumentRoot должен быть ниже корневой папки приложения. На yii2 DocumentRoot у меня всегда смотрит на папку web, которую я переименовываю иногда в public_html, если так на шаред хостинге. Инструкция, про которую вы говорите - для хостингов, у которых нельзя размещать файлы выше DocumentRoot или тонко его настраивать, применять её на своём сервере есть смысл только в случае деплоя на такой хостинг, хотя я бы не стал, потому что с такими хостингами можно ещё кучу проблем огрести, типа "взлома" гита из-за публикации его папки
Ну я написал чтобы была видна логика, то как оно должно выглядеть в продакшене это вопрос иной. Я написал так чтобы человек разобрался что и куда ведет и дома смог все протестировать.