gpt4 book ai didi

linux - 为什么 mod_revite 在 Apache 中不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:36 25 4
gpt4 key购买 nike

我有:Debian Linux 9 上的 Apache 2.4.2。Apache 是从标准存储库安装的,也是 mod_rewrite。

网站的根是:/var/www/mysite。虚拟主机 local-mysite.ru 为此目录配置。

首先,我将调用 phpinfo () 的文件放到根 index.php 文件中。我检查了这个输出:在加载模块部分我看到了 mod_rewrite。很好。

接下来,我打开一个测试站点。这里的启动脚本是通过以下网址打开的: http://local-mysite.ru/appadv/frontend/web在此 URL 上,太正常打开: http://local-mysite.ru/appadv/frontend/web/index.php

现在,当浏览器打开时我需要它 http://local-mysite.ru ,跟随重定向到 URL http://local-mysite.ru/appadv/frontend/web .

为此,我用以下内容编写了 .htaccess:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# If the request does not start with the web, we add it
RewriteCond %{REQUEST_URI} !^/(appadv/frontend/web)
RewriteRule (.*) /appadv/frontend/web/$1

# If the file or directory does not exist, go to /web/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /appadv/frontend/web/index.php

我在在线测试器中测试了他 http://htaccess.madewithlove.be .在那里转换 URI 是正确的。

但是在我的主机上 URI 转换没有发生!

为了调试,我编辑了 /etc/apache2/apache2.conf 文件中的选项以查看重定向消息:

LogLevel warn rewrite: trace4

重新启动 Apache。使用 URL http://local-mysite.ru 更新了页面.据我所知,标有 [rewrite ...] 或类似内容的行应该出现在文件 /var/log/apache2/error.log 中。但事实并非如此。

我不知道去哪里挖了。

如果它很重要:通过 URL http://local-mysite.ru Apache 显示文件列表。

最佳答案

好吧,我明白了。

在/etc/apache2/apache2.conf 文件中,需要将/var/www/目录的 AllowOverride 选项从无设置为全部:

<Directory /var/www/>
Options Indexes FollowSymLinks
# AllowOverride None
AllowOverride All
Require all granted
</Directory>

关于linux - 为什么 mod_revite 在 Apache 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47828360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com