【发布时间】:2019-04-12 03:31:10
【问题描述】:
我希望用户输入: www.mysite.com/test 这将重定向到一个页面,该页面将在我的数据库中搜索名为 test 的事件,如果该事件存在,则显示该事件,否则将重定向到搜索页面。
我几乎设法让它工作了 - 如此接近但到目前为止......
这是我要去的地方:
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/?$ show_events.php?q=$1 [NC,L]
它的工作原理是它重定向到 show_events.php 页面,该页面在数据库中搜索精确匹配并在找到时显示事件,否则重定向到搜索页面。我对此非常满意。
问题是当文件夹 (www.mysite.co.uk/test/) 已经存在时,错误页面显示“此页面无法正常工作”。该文件夹仅包含一个显示单词“hello”的 HTML 页面。如果您键入 www.mysite.co.uk/test/index.html 页面显示正常,所以它不是不起作用。
我已经得出结论,搜索页面可以正常工作,但 RewriteEngine 代码却不行。
这篇文章看起来可以解决我的问题,但不完全是: Apache RewriteEngine - Rewrite anything that not exists to index.php
我认为通过在 RewriteRule 的末尾添加 DPI 可能会解决问题,但事实并非如此。
我真的不了解 RewriteEngine,只是在黑暗中摸索,使用反复试验,有人可以帮助我吗?
【问题讨论】:
标签: .htaccess mod-rewrite