#php #yii2 #apache
На хостинге установлен yii2-basic, установлен не в корень, а в htdocs/basic. Хочу http://домен/basic/web/about заменить на http://домен/basic/about. На данный момент последний адрес перенаправляет на главную страницу. В basic лежит следующий .htaccess:Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/.* RewriteRule ^(.*)$ web/$1 [L] RewriteCond %{REQUEST_URI} !^/web/ RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ web/index.php В basic/web тоже лежит .htaccess: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php В config/web.php: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '' => 'site/index', ''=>'site/ ', ], ], В 'request' добавление 'baseUrl' => '' даёт 404.
Ответы
Ответ 1
Сам не раз сталкивался с клиентами, у которых был обычный хостинг, где не было возможности прописать корневую директорию. Вот как я решал данную проблему: 1) В корне проекта создаем .htaccess с содержимым:Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/.* RewriteRule ^(.*)$ basic/web/$1 [L] RewriteCond %{REQUEST_URI} !^/basic/web/ RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ basic/web/index.php 2) В папке web создаем .htaccess с содержимым: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 3) Далее открываем файл config/web.php и делаем следующее: Находим строчку 'request' => [ 'cookieValidationKey' => ......., ], И добавляем в массив строчку 'baseUrl' => '' 'request' => [ 'cookieValidationKey' => ......., 'baseUrl' => '', ], 4) Заранее забегаю вперед и пишу, как убрать ещё и index.php Находим строчку в файле config/web.php 'urlManager' => [ ........ //остальная часть кода ], И добавляем в массив строчку 'showScriptName' => false 'urlManager' => [ 'showScriptName' => false, ........ //остальная часть кода ], Данная инструкция уместна для структуры папок, указанной Вами. Обычно проект заливают в корень сайта. В таком случае убираем в первом пункте basic и наслаждаемся жизнью :)
Комментариев нет:
Отправить комментарий