HTACCESS перенаправляет папку контроллера на поддомен - PullRequest
0 голосов
/ 06 мая 2020

Я застрял в проблеме с. HTACCESS FILE. Я использую CodeIgniter 3

Сценарий:

У нас есть домен https://example.com, а панель администратора находится в папке типа application/controllers/manage/<controllers here>

Теперь мне нужно, чтобы это произошло.

Если кто-то перейдет на https://example.com/manage, он должен быть перенаправлен на https://admin.example.com/manage.

Имейте в виду, что и субдомен, и основной домен указывают на один и тот же каталог.

Также я хочу, чтобы это произошло:

Если кто-то перейдет по любому URL-адресу, например https://admin.example.com/<anyhting-other-than-manage>, чтобы перенаправить на https://example.com/<anything-other-than-manage> Вот мой текущий .htaccess

# gtranslate config
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /gtranslate/gtranslate.php?glang=$1&gurl=$2 [L,QSA]
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)$ /$1/ [R=301,L]

RewriteCond %{HTTP_HOST} ^static.example.com [NC]
RewriteRule !^(assets|uploads)/ https://example.com%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} ^admin.example.com [NC]
RewriteRule !^(manage)/ https://example.com%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(manage)/ https://admin.example.com/manage%{REQUEST_URI} [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 


# procedure was miss spelled
Redirect 301 /yellwo /yellow

# Redirect 301 ......

Пожалуйста help

ОБНОВЛЕНИЕ: Следующее, похоже, работает для перенаправления admin.example.com<NOT-MANAGE-URI> на example.com/<NOT-MANAGE-URI>

<IfModule mod_rewrite.c>
RewriteEngine On

#gtranslate code 
# ........

RewriteCond %{HTTP_HOST} ^static.example.com [NC]
RewriteRule !^(assets|uploads)/ https://example.com%{REQUEST_URI} [R,L]

# REDIRECT ADMIN

RewriteCond %{HTTP_HOST} ^admin.example.com [NC]
RewriteCond %{REQUEST_URI} !^/manage/
RewriteRule (.*) https://example.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

.......

После этого: URL-адрес в браузере https://admin.example.com/about-us перенаправляет на https://example.com/about-us, что является правильным.

но запись https://admin.example.com/manage/ перенаправляет на https://example.com/index.php/manage/

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете вставить это правило в начало вашего .htaccess, чтобы перенаправить example.com/manage на admin.example.com/manage:

RewriteCond %{HTTP_HOST} ^(?:www\.)?.(example\.com)$ [NC]
RewriteRule ^manage(?:/.*)?$ https://admin.%1%{REQUEST_URI} [NC,R=301,NE,L]
...