gpt4 book ai didi

php - 如果在 URL 中请求 .php 扩展名,则重定向到 404

转载 作者:可可西里 更新时间:2023-11-01 00:16:42 25 4
gpt4 key购买 nike

我目前通过使用 mod_rewrite 让我的所有页面在没有 .php 扩展名的情况下工作。如:

www.mywebsite.com/noextension

但是,如果我的用户决定像这样将 .php 扩展名添加到 url,我将如何将他们重定向到 404 页面?

www.mywebsite.com/noextension.php

到目前为止,我的 htaccess 看起来像这样:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9]+)(/)?$ $1.php
RewriteRule ^forums/([a-zA-Z0-9]+)(/)?$ forums.php?category=$1 [NC]

我已经尝试过诸如 RewriteRule\.php$ - [R=404] 之类的东西,但是,我访问的每一页都只有 404。我假设我可能必须使用 REQUEST_URI 之类的东西来完成我的要求。

你们建议我添加什么?谢谢。

最佳答案

试试这些行(放在你已经有的行之上):

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php - [F,L]

此规则将阻止(403 错误)直接访问任何 .php 文件(但当规则进入下一次迭代时,路径将通过已经重写的 URL)。

TBH 我不是 100% 确定它会工作(这取决于你的 Apache 配置)......但考虑到你有 v2.2.x 它应该(它在我的 2.2.17 上工作正常)。


更新:对于 “在没有/index 的情况下将我的网站主页踢到 404”,在上述规则之前添加此行:

RewriteRule ^$ /index.php [QSA,L]

关于php - 如果在 URL 中请求 .php 扩展名,则重定向到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668958/

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