OccamaRazor
@OccamaRazor

Как настроить нормальные адреса в .php файлах проекта Yii?

Server error!

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.

If you think this is a server error, please contact the webmaster.

Error 500

<IfModule mod_autoindex.c>
      Options -Indexes
</IfModule>
    
<IfModule mod_rewrite.c>
    Options +FollowSymlink
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /web/index.php
</IfModule>
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Что именно Вы хотите сделать?
Убрать "web" из адресной строки?
Если да, то это делается чуть иначе.
Надо два .htaccess
Первый в директорию "web" положить
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#RewriteCond %{REQUEST_URI} ^/web/*
RewriteRule . index.php

Второй в корень сайта, на одном уровне с "web"
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine on
</IfModule>

<IfModule mod_rewrite.c>
   RewriteCond %{REQUEST_URI} ^/.*
   RewriteRule ^(.*)$ web/$1 [L]

   RewriteCond %{REQUEST_URI} !^/web/
   RewriteCond %{REQUEST_FILENAME} !-f [OR]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^.*$ web/index.php

</IfModule>

Теперь адрес для index-ой страницы будет site.com, а не site.com/web

p.s. А для настройки так называемого роутинга, настраивайте правила в конфигурационных файла для UrlManager

p.s. Все .htaccess будут работать с yii2-basic, если нужно настраивать для yii2-advanced, то там будут другие правила

return [
  'components' =>[
     'urlManager' => [
        // настройки urlManager
     ]
  ]
]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы