网站:同名的 URL 和文件夹不起作用

问题描述 投票:0回答:1

我想使用以下网址:

my-domain.com/urlname
并在我的网站空间中有一个与 url 同名的目录。

在我的 htaccess 中,我有以下 RewriteRule

RewriteRule ^urlname$    landingpage.php [L,QSA] 

一旦我将一个具有相同名称“urlname”的文件夹添加到我的网络空间中,我就无法再使用浏览器打开该网址。当文件夹“urlname”存在时,Chrome 会自动在 url 中添加尾部斜杠并显示“禁止访问!”。

是否可以有一个与文件夹同名的url(确实存在,不使用htaccess):

my-domain.com/urlname
my-domain.com/urlname/

.htaccess
1个回答
0
投票

当文件夹“urlname”存在时,Chrome 会自动在 url 后面添加一个斜杠并显示“禁止访问!”

这是因为您的 Web 服务器 (Apache) 上有 2 个配置。

  1. Module
    mod_dir
    mod_rewrite
    模块之前运行,并在请求与现有目录匹配时检查尾随斜杠。如果缺少尾随
    /
    ,则它会通过添加尾随
    301
    来执行
    /
    重定向。
  2. 403
    是由于 Apache 配置中或同一 .htaccess 中某处存在(推荐)
    Options  -Indexes
    ,当不存在索引文件时,它会禁用目录列表。这是根据安全建议。

如果您想以最小的改变使其全部工作,请使用:

RewriteRule ^urlname/?$ landingpage.php [L,NC]

记下与 URI

/
匹配的尾随
urlname/

请注意,如果您先将 URL 作为

301
输入到
/urlname
,您仍然会获得
/urlname/
重定向,然后它将显示来自
landingpage.php
的内容。

我删除了不需要的标志

QSA
并添加了
NC
(忽略大小写)标志。

© www.soinside.com 2019 - 2024. All rights reserved.