我已经在Raspbian上安装了Codeigniter 4,一切看起来都很好。我的网页目录是/var/www/html,里面有两个文件夹,包含两个不同的Codeigniter-4应用程序,我想用:
blue.ddns.net -> /var/www/html/blue/public/index.phpblack.ddns.net -> /var/www/html/black/public/index.php所以我正在创建一个.htaccess文件,放在/var/www/html/文件夹中来处理这两个请求
好吧,我仍然处于第0步,因为我无法使.htaccess文件正常工作。
下面附上一份文件副本:
<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/
发布于 2021-03-25 16:21:06
在你的htaccess中不应该这么做。您应该在apache虚拟主机中设置它。
进入你的网站-每个文件夹。
$ cd /etc/apache2/sites-available创建一个名为blue.ddns.net.conf的新虚拟主机
$ touch blue.ddns.net.conf使用nano或其他您可能喜欢的文本编辑器打开该文件,并添加以下内容。
<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中,如下所示:
$ sudo micro blue.ddns.net.conf对于其他代码点火器、安装和重新引导apache,重复相同的过程。
$ sudo service apache2 restart这样就行了。
现在,如果您想要覆盖某个配置,那么您可以在htaccess文件中为每个codeigniter 4安装一些配置。
发布于 2021-03-26 10:03:35
我一直致力于托管,从来没有做过Apache配置。但现在我发现了Raspberry/Linux世界。多亏了你的回答,我才能更好地理解这个问题,并(暂时)以以下方式解决这个问题:
现在,我的配置文件000-default.conf (端口80)和000-default-le-ssl.conf (端口443)都包含以下代码:
<Directory "/var/www/html">.
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>相反,我在/var/www/html中使用以下代码创建了一个.htaccess文件:
# 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>应用程序位于
/var/www/html/blue和/var/www/html/black
这是一个非常简单的解决方案,符合我的目的。虽然我觉得它不太雅致,但你觉得呢?
https://stackoverflow.com/questions/66802655
复制相似问题