提问人:Amrit Gupta 提问时间:11/14/2023 最后编辑:Peter MortensenAmrit Gupta 更新时间:11/16/2023 访问量:54
删除“.php”扩展名并获取 ID
Remove '.php' extension and get the id
问:
考虑:
RewriteRule ^([A-Za-z0-9-/]+)$ view.php?id=$1 [L]
RewriteRule ^([A-Za-z0-9-/]+)$ lista.php?category=$1 [L]
我删除了 .php 扩展名并编写了两条规则,但单击不同的两个链接,将打开同一页面。 只有第一个重写规则有效,但第二个规则不起作用。我该如何解决?
答:
2赞
Ishtiaq Ahmed
11/14/2023
#1
您面临的问题是由于两个 RewriteRules 具有相同的模式。当 URL 与这些规则匹配时,第一个 URL 将始终优先,因为它是首先遇到的。第二条规则实际上被忽略了。(^([A-Za-z0-9-/]+)$)
若要解决此问题,可以区分这两个规则的模式。例如,您可以按如下方式修改模式:
RewriteRule ^view/([A-Za-z0-9-/]+)$ view.php?id=$1 [L]
RewriteRule ^category/([A-Za-z0-9-/]+)$ lista.php?category=$1 [L]
现在,像这样的 URL 将被重写为 ,而像这样的 URL 将被重写为 。example.com/view/someid
view.php?id=someid
example.com/category/somecategory
lista.php?category=somecategory
确保相应地更新您的链接。如果仍然遇到问题,可能需要检查 Apache 配置,以确保模块已启用,并且正在读取和处理文件。此外,请检查 .htaccess 文件或其他配置文件中是否存在任何冲突的规则或条件。mod_rewrite
.htaccess
评论
1赞
Amrit Gupta
11/15/2023
谢谢,但css和图像不显示
2赞
DavidW
11/15/2023
这个答案看起来像是 ChatGPT 的复制粘贴
评论