我已经使用这个 Apache Rewrite Rule 有一段时间了,它通常会给我很好的结果:
RewriteRule ^([^\.]+)/?$ index.php?$1 [L]
当用户访问www.mysite.com/about-us
时,服务器显示来自的内容www.mysite.com/index.php?about-us
。内容存储在数据库中,我使用查询字符串('about-us')搜索每个页面的内容。直到最近,这一切都很好。
我正在构建的一个新站点有一个目录(我们将其称为“文件夹”),它与我想要的查询字符串名称相同——也就是说,不是在newsite.com/folder
目录中查找索引文件,而是www.newsite.com/folder
应该通过index.php
并使用“文件夹”作为搜索参数。相反,我得到了这个:
www.newsite.com/folder/?folder
其中我的代码将查询字符串解释为“文件夹/”。所以第一个问题是 URL 看起来很奇怪;第二个问题是我的页面存储时没有任何尾部斜杠。
当然,我可以在收到查询字符串后调整我的代码以去掉任何斜杠,但这可能会使创建模拟文件夹结构的 URL 变得更具挑战性,例如www.newsite.com/user/images/month
. 它仍然无法摆脱我已经拥有的时髦 URL。
我怀疑有一个简单的解决方案可以使我的 URL 更漂亮,并防止服务器在我的目录中查找文件(除非用户明确要求提供 html 或 php 文件)。感谢您的输入。