URL içinde geçen frontend/web
ve backend/web
in gizlenmesi için Apache sunucularda .htaccess
içinde gerekli değişikliklerin yapılması gerekir. .htaccess
kök dizinde olmalı.
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
#backend için
#RewriteRule ^adminpanel(/.+)?$ backend/web/$1 [L,PT]
RewriteRule ^adminpanel(.+)?$ backend/web/$1 [L,PT]
#frontend için
RewriteRule ^(.+)?$ frontend/web/$1
</IfModule>
# Deny accessing dot files
RewriteRule (^\.|/\.) - [F]
Kök dizine .htaccess
ekleyip değişiklikleri yaptıktan sonra frontend/web
dizininede aşağıdaki gibi .htaccess
eklenmelidir.
frontend/web .htaccess
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
Daha sonra frontend/config/main.php
içine aşağıdaki kodların eklenmesi gerekir.
use \yii\web\Request;
$baseUrl = str_replace('/frontend/web', '', (new Request)->getBaseUrl());
Kodlar eklendikten sonra aşağıdaki gibi olmalı:
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
#/frontend/web url'den silinecek
use \yii\web\Request;
$baseUrl = str_replace('/frontend/web', '', (new Request)->getBaseUrl());
return [
'id' => 'app-frontend',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'frontend\controllers',
'components' => [
...
'request' => [
'baseUrl' => $baseUrl,#/frontend/web url'den silinecek
],
...
],
'params' => $params,
];
Kök dizine .htaccess
ekleyip değişiklikleri yaptıktan sonra backend/web
dizininede aşağıdaki gibi .htaccess
eklenmelidir.
backend/web .htaccess
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
Daha sonra backend/config/main.php içine aşağıdaki kodların eklenmesi gerekir.
//backend/web url'den silinecek adminpanel olacak
use \yii\web\Request;
$baseUrl = str_replace('/backend/web', '/adminpanel', (new Request)->getBaseUrl());
Kodlar eklendikten sonra aşağıdaki gibi olmalı:
<?php
$params = array_merge(
require __DIR__ . '/../../common/config/params.php',
require __DIR__ . '/../../common/config/params-local.php',
require __DIR__ . '/params.php',
require __DIR__ . '/params-local.php'
);
#/backend/web url'den silinecek, /adminpanel olacak
use \yii\web\Request;
$baseUrl = str_replace('/backend/web', '/adminpanel', (new Request)->getBaseUrl());
return [
'id' => 'app-backend',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'backend\controllers',
'components' => [
...
'request' => [
'baseUrl' => $baseUrl,#/backend/web url'den silinecek, /adminpanel olacak
],
...
],
'params' => $params,
];