.htaccess를 사용하여 Yii2 웹사이트에서 프런트엔드/웹 및 백엔드/웹 디렉토리 숨기기
문제:
Yii2 Advanced 템플릿에서는 웹사이트 URL에서 프런트엔드 및 백엔드 디렉토리를 볼 수 있습니다. 이는 보다 전문적이거나 사용자 정의된 모양을 위해 바람직하지 않을 수 있습니다.
해결책:
이러한 디렉터리를 숨기려면 웹사이트 루트 디렉터리의 .htaccess 파일을 다음과 같이 수정하세요.
Options +FollowSymlinks RewriteEngine On # Handle admin URL separately RewriteCond %{REQUEST_URI} ^/(admin) RewriteRule ^admin/assets/(.*)$ backend/web/assets/ [L] RewriteRule ^admin/css/(.*)$ backend/web/css/ [L] RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/ RewriteCond %{REQUEST_URI} ^/(admin) RewriteRule ^.*$ backend/web/index.php [L] # Handle frontend assets RewriteCond %{REQUEST_URI} ^/(assets|css) RewriteRule ^assets/(.*)$ frontend/web/assets/ [L] RewriteRule ^css/(.*)$ frontend/web/css/ [L] RewriteRule ^js/(.*)$ frontend/web/js/ [L] RewriteRule ^images/(.*)$ frontend/web/images/ [L] # Handle frontend RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/ RewriteCond %{REQUEST_URI} !index.php RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ frontend/web/index.php
추가 구성:
올바른 URL 처리를 위해 공통 디렉토리에 Components/Request.php 파일을 생성하고 다음 코드를 추가하세요.
<code class="php">namespace common\components; class Request extends \yii\web\Request { public $web; public $adminUrl; public function getBaseUrl() { return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl; } public function resolvePathInfo() { if ($this->getUrl() === $this->adminUrl) { return ""; } else { return parent::resolvePathInfo(); } } }</code>
frontend/config/main.php 및 backend/config/main.php에서 각각 요청 구성 요소를 구성합니다.
<code class="php">// frontend 'request' => [ 'class' => 'common\components\Request', 'web' => '/frontend/web' ], // backend 'request' => [ 'class' => 'common\components\Request', 'web' => '/backend/web', 'adminUrl' => '/admin' ],</code>
웹 디렉터리에 대한 추가 .htaccess 구성:
위 단계로 문제가 해결되지 않으면 웹 디렉터리(프런트엔드와 백엔드 모두)에서 다음 내용으로 .htaccess 파일을 생성하거나 수정하세요.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/ [L]
이후 이러한 구성을 구현하면 웹사이트의 URL이 더 이상 프런트엔드/웹 또는 백엔드/웹 디렉토리를 표시하지 않아 더욱 깔끔하고 전문적인 모습을 제공합니다.
위 내용은 Yii2 웹사이트의 URL에서 프런트엔드 및 백엔드 디렉터리를 숨기는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!