【发布时间】:2021-08-13 05:23:39
【问题描述】:
我有下一个配置
<VirtualHost *:443>
ServerName projectsite.com
ServerAlias projectsite.com
DocumentRoot /var/www/project
<Directory />
RewriteEngine On
Options +FollowSymlinks
AllowOverride All
Require all grant
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/?.+$ / [L]
</Directory>
</VirtualHost>
该项目管理来自客户端的所有 url,因此,我只需要返回 index.html 文件并使用 javascript 呈现模块。它工作正常,但如果 url 与文件夹匹配,那么我会收到 403 错误“禁止”。取而代之的是,我需要返回根 index.html 文件,或者该 url 是否与目录名称匹配。
¿我该怎么做?我试图在互联网上找到,但我没有找到类似的东西。
更新:
Dusan Bajic 是如何告诉我的,我删除了那行 RewriteCond %{REQUEST_FILENAME} !-d 并解决了第一个问题,但现在规则是在 URL 的末尾添加一个斜杠,
如果我有“site.com/reports”,它将更改为“site.com/reports/”。我需要在没有这个斜杠的情况下维护 url。我认为问题出在
下一条规则:
RewriteRule ^/?.+$ / [L]
但我不知道正确的制作方法
【问题讨论】:
标签: apache mod-rewrite virtualhost