gpt4 book ai didi

php - 如何禁用尾部斜杠附加?

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:57 25 4
gpt4 key购买 nike

我正在用 PHP、MVC 编写自己的网站,它使用路由(所有内容都重定向到/index.php)。

网站的结构是这样的:

/module/
/module/catalog/
/module/catalog/entry.html

我的站点根目录中还有名为/module/catalog/的真实文件夹。

只有当用户请求带有尾部斜杠的 URL 时,我才需要 MVC 加载内容,否则 MVC 必须抛出 404 错误。但是 当我跟随像/module/catalog 这样的 url,并且有一个具有这样地址的真实目录时,Apache 自动附加尾部斜杠,并且 MVC 继续工作,而不是给出 404 错误(它应该是) .如果没有这样的目录,URL 将保持不带斜线,我会看到 404(没关系)。

如何在第一种情况下禁用附加斜线?我想使用 PHP 脚本以不同方式处理带斜线和不带斜线的 URL。

根 .htaccess 中的 DirectorySlash Off 绝对无效。这是我的/.htaccess:

Options -Indexes +FollowSymLinks
DirectoryIndex index.php

AddDefaultCharset utf-8

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301]

DirectorySlash Off

ErrorDocument 404 /errors/404.html
ErrorDocument 403 /errors/403.html

RewriteCond %{REQUEST_URI} !\/errors\/
# TODO: Remove PHP gere - it's only for testing!
RewriteCond %{REQUEST_URI} !\.(js|gif|jpg|png|css|txt|ico|php)$
# QSA says to overwrite GET values defined in target address string.
RewriteRule .* index.php [L]

最佳答案

首先,让我首先声明,拥有反射(reflect)您的 URL 重写的文件夹可能不是一个好主意。

其他 MVC 将索引文件放在它们的类目录中,这些文件只是看起来像 404 页面的 HTML 页面。这样,如果用户使用斜线请求它,他们将被重定向到显示 404 文本的 index.html 页面。

检查 CodeIgniter 的 Core 文件夹中的“index.html”文件:

https://github.com/bcit-ci/CodeIgniter/tree/develop/system/core

关于php - 如何禁用尾部斜杠附加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615850/

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