首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果重写映射不存在,则转到404

如果重写映射不存在,则转到404
EN

Stack Overflow用户
提问于 2011-06-22 07:22:21
回答 2查看 621关注 0票数 1

我已经创建了一个运行良好的重写映射:

.htaccess

RewriteRule ^([^/\.]+)/?$ index.php?page=${mymap:$1} [L]

mymap.txt

代码语言:javascript
运行
复制
home 1
about 2
contact 3

所以www.myurl/home运行得很好,但是www.myurl/nonexistant_page在mymap.txt中不存在,所以我得到了一个SQL错误。有没有办法检查地图是否存在,如果不存在,就进入404页面?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 17:11:30

当映射中的键和值之间没有对应关系时,可以指定默认值。

代码语言:javascript
运行
复制
${mymap:$1|default_value}

然后,您可以使用此默认值在index.php页面中触发404调用,方法是测试名为page的query_string键。

默认情况下,default_value为空字符串。这可能解释了为什么当您的index.php页面使用空参数进行SQL查询时会出现SQL错误。

票数 3
EN

Stack Overflow用户

发布于 2011-06-22 08:24:11

我无法强调这样的重要性,即不能在SQL查询的末尾添加页面ID,而不首先对其进行清理。

无论如何,也许可以用try/catch包围您的SQL查询,并在捕获到SQL异常时发送404标头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6433144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档