.htaccess RewriteRule не работает так, как мне нужно для моей расширенной платформы yii2 - PullRequest
0 голосов
/ 18 марта 2019

Я создал это правило .htaccess, чтобы показать интерфейсную и внутреннюю части:

Options +FollowSymLinks
RewriteEngine On

# End the processing, if a rewrite already occurred
RewriteRule ^(frontend|backend)/web/ - [L]

# Handle the case of backend, skip ([S=1]) the following rule, if current matched
RewriteRule ^backend(/.*)?$ /backend/web/$1 [L]

# handle the case of frontend
RewriteRule .* /frontend/web/$0

# Uncomment the following, if you want speaking URL
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^([^/]+/web)/.*$ $1/index.php

Правило для бэкэнда часть (2-е правило), следуйте URL, как мне нужно, как это https://example.com/backend/web/site/login, но не загружает страницу входа в бэкэнд и показывает только домашнюю страницу внешнего интерфейса.я хочу показать страницу входа в бэкэнд, когда пользователь использует бэкэнд как https://example.com/backend., но это не работает.

Когда я изменяю правило, как показано ниже, то правило показывает страницу входа в бэкэнд, как мне нужно.но я хочу показывать страницу входа в бэкэнд только тогда, когда пользователь вводит бэкэнд в URL:

RewriteRule ^.*$ /backend/web/$1 [L]

Это работает на локальной стороне, но не работает на стороне моего выделенного сервера IONOS 1 & 1.

Пожалуйста,помогите мне загрузить страницу входа в свой бэкэнд по мере необходимости.

Спасибо

1 Ответ

0 голосов
/ 20 марта 2019

=> .htaccess

Options -Indexes

<IfModule mod_rewrite.c>
  RewriteEngine on  
  RewriteCond %{REQUEST_URI} /(uploadImages)
  RewriteRule ^uploadImages/(.*)$ uploadImages/$1 [L]
  RewriteCond %{REQUEST_URI} !^public
  RewriteRule ^backend(.+)?$ backend/web/$1 [L,PT]
  RewriteRule ^(.*)?$ frontend/web/$1 [L]
</IfModule>

# Deny accessing below extensions
<Files ~ "(.json|.lock|.git)">
Order allow,deny
Deny from all
</Files>
# Deny accessing dot files
RewriteRule (^\.|/\.) - [F]

=> backend / config / main.php

'request' => [
            'baseUrl' => '/backend', //point to your folder directly 
        ],
'urlManager' => [
            'enablePrettyUrl' => true, // hide ?r=site%2Fsignup
            'showScriptName' => false, //hide frontend/web/index.php from URL            
            'rules' => [
                '<controller:\w+>/<action:\w+>/<id:\w+>' => '<controller>/<action>',
                '<alias:index|>' => 'site/<alias>',
                '<alias:login|logout>' => 'site/<alias>', 
            ], 
        ],
...