HTACCESS重定向控制器文件夹到子域

问题描述 投票:0回答:1

我对。HTACCESS文件有问题。我正在使用CodeIgniter 3

场景:

我们有一个域https://example.com,管理面板位于类似application/controllers/manage/<controllers here>

现在我需要做到这一点。

如果有人去https://example.com/manage,应重定向至https://admin.example.com/manage

请记住,子域和主域都指向同一目录。

我也希望发生这种情况:

[如果有人访问任何类似的网址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 ......

请帮助

更新:以下似乎确实可以将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] 

.......

此之后:浏览器https://admin.example.com/about-us中的URL重定向到正确的https://example.com/about-us

但是写https://admin.example.com/manage/会重定向到https://example.com/index.php/manage/

.htaccess codeigniter redirect url-rewriting subdomain
1个回答
0
投票

您可以在.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]
© www.soinside.com 2019 - 2024. All rights reserved.