Php 有关.htaccess文件的帮助。自定义URL的mod_重写?
情况: 我有几百篇文章,每一篇都属于一个特定的类别 A] 现在,当用户访问主页时,内容与按日期排序的类别无关 他可以浏览不同的页面,如: 类型1:对应于 我可能可以在mod_rewrite中完成这项工作 B] 然后,用户可以决定按类别查看,如: 类型2:将对应于 然后,他可以浏览以下页面: 类型3:哪个=> C] 我有一个名为View的目录,其中包含index.php。它只显示个别帖子,如: 类型4:=> 以下是我所做的修改: 重新启动发动机 重写规则^View/([^/]+)/?$View/index.php?id=$1[L] 下面是我遇到的问题 在C点中]:工作正常,但 (注意后面的斜杠)分开并给出奇怪的结果。 问题1)那么,我如何在这里保持一致性 Q2)理想情况下,如果没有id为1514的post,我希望显示404错误,但现在我必须在PHP代码中手动处理该错误 处理这种动态URL的正确方法是什么?尤其是url错误时 问题3)我如何确保&两者都重定向到;(修改代码会有帮助) 请注意,只有两个index.php文件。根目录中的一个,它除了显示由视图目录中的index.php处理的单个帖子之外,还执行其他操作。这是开发网站的一种合乎逻辑的方式吗?试试以下规则:Php 有关.htaccess文件的帮助。自定义URL的mod_重写?,php,apache,url,mod-rewrite,apache2,Php,Apache,Url,Mod Rewrite,Apache2,情况: 我有几百篇文章,每一篇都属于一个特定的类别 A] 现在,当用户访问主页时,内容与按日期排序的类别无关 他可以浏览不同的页面,如: 类型1:对应于 我可能可以在mod_rewrite中完成这项工作 B] 然后,用户可以决定按类别查看,如: 类型2:将对应于 然后,他可以浏览以下页面: 类型3:哪个=> C] 我有一个名为View的目录,其中包含index.php。它只显示个别帖子,如: 类型4:=> 以下是我所做的修改: 重新启动发动机 重写规则^View/([^/]+)/?$Vie
RewriteRule ^$ index.php?page=1 [L]
RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L]
RewriteRule ^View/([0-9]+)/?$ View/index.php?id=$1 [L]
RewriteRule ^([A-Za-z]+)/?$ index.php?category=$1&page=1 [L]
RewriteRule ^([A-Za-z]+)/([0-9]+)/?$ index.php?category=$1&page=$2 [L]
至于另一个问题:是的,因为Apache可以将这些请求映射到现有文件,所以它会用成功状态代码进行响应。现在,如果您的应用程序确定请求的资源不存在,您需要在应用程序中处理该问题,并发送适当的状态代码。要修复尾部斜杠,只需在模式末尾的
$
前面加上/?
,谢谢您的尝试,你能澄清一下404错误和尾随斜杠问题吗?例如:这是页面的当前url,但是如果我将url中的编号改为3897777,那么将不会出现的apache是否是404页面,或者服务器端代码将查看数据库并重定向到404…这是如何工作的?如果这是你的规则:RewriteRule^View/([0-9]+)/?$View/index.php?id=$1[L]这是您的模式:^View/([0-9]+)/$