首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter 4 Multisite

Codeigniter 4 Multisite
EN

Stack Overflow用户
提问于 2021-03-25 15:26:49
回答 2查看 297关注 0票数 2

我已经在Raspbian上安装了Codeigniter 4,一切看起来都很好。我的网页目录是/var/www/html,里面有两个文件夹,包含两个不同的Codeigniter-4应用程序,我想用:

  • blue.ddns.net -> /var/www/html/blue/public/index.php
  • black.ddns.net -> /var/www/html/black/public/index.php

所以我正在创建一个.htaccess文件,放在/var/www/html/文件夹中来处理这两个请求

好吧,我仍然处于第0步,因为我无法使.htaccess文件正常工作。

下面附上一份文件副本:

代码语言:javascript
复制
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /var/www/html
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ blue/public/index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

重写模块被激活,出现在/var/log/apache2/error.log中的错误是:

/var/www/html/..htaccess:预期在配置结束前,引用:https://blue.ddns.net/

EN

回答 2

Stack Overflow用户

发布于 2021-03-25 16:21:06

在你的htaccess中不应该这么做。您应该在apache虚拟主机中设置它。

进入你的网站-每个文件夹。

代码语言:javascript
复制
$ cd /etc/apache2/sites-available

创建一个名为blue.ddns.net.conf的新虚拟主机

代码语言:javascript
复制
$ touch blue.ddns.net.conf

使用nano或其他您可能喜欢的文本编辑器打开该文件,并添加以下内容。

代码语言:javascript
复制
<VirtualHost *:80>
        ServerAdmin your@email.com
        DocumentRoot /var/www/html/blue/public
        ServerName blue.ddns.net
        ServerAlias blue.ddns.net
        <Directory "/var/www/html/blue/public">
                allow from all
                AllowOverride All
                Options None
                Require all granted
        </Directory>
        RewriteEngine on
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        RewriteCond %{SERVER_NAME} =blue.ddns.net
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

保存并关闭文件。

然后将其添加到apache中,如下所示:

代码语言:javascript
复制
$ sudo micro blue.ddns.net.conf

对于其他代码点火器、安装和重新引导apache,重复相同的过程。

代码语言:javascript
复制
$ sudo service apache2 restart

这样就行了。

现在,如果您想要覆盖某个配置,那么您可以在htaccess文件中为每个codeigniter 4安装一些配置。

票数 2
EN

Stack Overflow用户

发布于 2021-03-26 10:03:35

我一直致力于托管,从来没有做过Apache配置。但现在我发现了Raspberry/Linux世界。多亏了你的回答,我才能更好地理解这个问题,并(暂时)以以下方式解决这个问题:

现在,我的配置文件000-default.conf (端口80)和000-default-le-ssl.conf (端口443)都包含以下代码:

代码语言:javascript
复制
<Directory "/var/www/html">.
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

相反,我在/var/www/html中使用以下代码创建了一个.htaccess文件:

代码语言:javascript
复制
# Disable directory browsing
Options All -Indexes

<IfModule mod_rewrite.c>.
    RewriteEngine On

    RewriteCond "%{HTTP_HOST}" "black\.ddns\.net"
    RewriteRule ^(.*)$ black/public/index.php?/$1 [L]

    RewriteCond "%{HTTP_HOST}" "blue\.ddns\.net"
    RewriteRule ^(.*)$ blue/public/index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

应用程序位于

代码语言:javascript
复制
/var/www/html/blue

和/var/www/html/black

这是一个非常简单的解决方案,符合我的目的。虽然我觉得它不太雅致,但你觉得呢?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66802655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档