2017-01-23 5 views
0

Я написал файлы .htaccess, чтобы предотвратить появление интерфейса/веб-сайта в URL-адресе, но когда я скрепляю ссылки через URL-адрес :: он появляется в url. Это мой .htaccess в корневом каталоге:Как удалить frontend/web с url в Yii2, продвинутый, чтобы он не появлялся, когда я использую Url :: to

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
</IfModule> 

<IfModule mod_rewrite.c> 
    # deal with admin first 
    RewriteCond %{REQUEST_URI} ^/(admin) 
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L] 
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L] 

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/ 
    RewriteCond %{REQUEST_URI} ^/(admin) 
    RewriteRule ^.*$ backend/web/index.php [L] 

    RewriteCond %{REQUEST_URI} ^/(assets|css|js|images) 
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L] 
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L] 
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L] 
    RewriteRule ^images/(.*)$ frontend/web/images/$1 [L] 
    RewriteRule ^(.*)$ frontend/web/$1 [L] 

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/ 
    RewriteCond %{REQUEST_URI} !index.php 
    RewriteCond %{REQUEST_FILENAME} !-f [OR] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^.*$ frontend/web/index.php 
</IfModule> 

Это файл .htaccess в фронтэнда/веб-каталог:

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . index.php 

Пожалуйста, помогите мне, я понятия не имею, что делать.

+0

Привет, приведем пример URL (результат Url :: к) и часть, которую вы не хотите, чтобы в нем появляются –

+0

Url :: не беспокоиться о том, что вы пишете в htaccess. Он использует UrlManager для создания url –

ответ

0

Используйте следующую конфигурацию в файле httpd.conf Apache или в конфигурации виртуального хоста. Обратите внимание, что вы должны заменить path/to/frontend/web фактическим путем для frontend/web.

# Set document root to be "frontend/web" 
DocumentRoot "path/to/frontend/web" 

<Directory "path/to/frontend/web"> 
    # use mod_rewrite for pretty URL support 
    RewriteEngine on 
    # If a directory or a file exists, use the request directly 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    # Otherwise forward the request to index.php 
    RewriteRule . index.php 

    # ...other settings... 
</Directory> 

Yii2 Docs

+0

Спасибо за ответ! –

+0

Я написал файлы .htaccess правильно, я просто забыл добавить baseUrl => '' в файл конфигурации. –

0

Добавить ниже строки в ваш файл .htaccess и заменить/на/базовый/путь/с пути директории проекта

RewriteCond %{REQUEST_URI} ^/to/base/path/ 
RewriteRule ^(.*)$ frontend/web/$1 [L] 
0

У вас есть много вопросов об основных вещи. насчет this И вы можете видеть в них много материала по углеродному и не только