。htaccess在第一页加载时不重写URL

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

我正在使用.htaccess文件重写URL,根据如何调用PHP文件以及显示的URL,成功加载页面的URL以正斜杠结尾。但是,特别是对于一个菜单链接,每当我单击它时,页面加载时都会显示404错误和没有斜杠的URL。然后,如果我尝试通过正确的URL或其他链接(无需重新编写就包含斜杠的相对链接)手动加载页面,则该页面将正常加载。页面加载正常后,即使从其他浏览器会话中,也始终可以从原始失败的链接正确加载。就像触发了某种状态然后将其缓存一样。

如果我从另一台计算机上的浏览器或其他浏览器(例如IE,Firefox和Chrome)启动,则此问题会再次出现,直到我正确加载所需的页面一次。

据我所知,所有菜单链接的链接,.htaccess文件等的表达方式都是相同的,因此我对此操作无所适从,除了由于某些原因,URL第一次没有正确重写。

有人知道这可能是什么问题吗?

位于目标URL级别的.htaccess文件的相关内容是:

Options -MultiViews
RewriteEngine On
RewriteBase /maps-gis/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
.htaccess url url-rewriting
1个回答
0
投票

添加此(在顶部)以禁用多视图:

Options -MultiViews

[C0,描述启用时的多视图选项:

如果服务器收到对/ some / dir / foo的请求,而/ some / dir / foo没有存在,然后服务器读取目录以查找所有名为foo。*,并有效地伪造了一个将所有这些命名的类型映射文件,为其分配相同的媒体类型并对其进行内容编码如果客户要求提供其中一个名称,则将具有。然后选择最符合客户要求的匹配项,然后返回文档。

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