访问要重写的地址时出现 403 错误

访问要重写的地址时出现 403 错误

我有以下重写规则:

RewriteRule ^products/([a-zA-Z]+)$ /project/clients/index.php?database=$1&module=products [L,QSA]

目录结构如下:

/var/www/project/clients/index.php

写入时地址"http://host/products/clientA/"被定向到"/project/clients/index.php?database=clientA&module=products"。在我的虚拟机中,我的 PC 上的 linux(debian)运行正常,但服务器 linux 返回 403 错误。

但如果我转而重写这个规则:

RewriteRule ^project/products/([a-zA-Z]+)$ /project/clients/index.php?database=$1&module=products [L,QSA]

然后写入 url: "http://host/project/products/clientA/",效果很好

和子目录的权限"/var/www/project/"适合 apache。

谢谢。

最初的问题

答案1

与 相同的答案https://stackoverflow.com/questions/3652598/error-403-when-accessing-an-address-to-rewrite

您应该将 .htaccess 文件放在 docroot 目录 (public_html 或 htdocs) 中。示例:
URL:http://example.com/somedir/somefile.php
路径:/var/www/example/htdocs/somedir/somefile.php
.htaccess 应放在 中/var/www/example/htdocs/.htaccess

当您收到 HTTP 403(或 500)错误时,您应该首先查看错误日志。

相关内容