所以我只是继承了一个网站。我想要做的第一件事就是构建一个漂亮的小标准,易于使用的CMS,它允许创建一个包含任何URL的页面(例如:whatever.html)。
因此,如果用户点击example.com/whatever.html,它应该获取whatever.html的任何数据库信息并显示它。这是磨坊的一部分。
我的问题是网站上有很多页面(都在.htaccess中列出)需要继续访问。例如,/ Promotions通过.htaccess链接到promotions.php,我需要它保持这种状态。
任何人都知道我如何构建.htaccess文件以允许特定的重写仍然有效但是通过index.php重新路由所有其他请求?
目前,我只有.htaccess显示一个自定义404页面,该页面依次检查数据库的数据库并显示它(如果存在)。这是一个简单的解决方案,但我知道有些人有奇怪的浏览器工具栏(愚蠢或不存在,它们存在:))autoredirect 404s,我讨厌通过不允许访问某些页面来惹恼我的用户这些工具栏。
非常感谢你的帮助!
答案 0 :(得分:5)
促销的RewriteRule
仍应有效,因为它不是404。
如果404处理程序显示页面,因为它存在于数据库中,那么它应该真正返回200 OK
状态(覆盖404状态),因此您不应该对浏览器工具栏有任何问题。
至于进行重新路由,你可以这样做:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*/(promotions|anotherone|somethingelse)($|/.*$) [NC]
RewriteRule ^(.*)$ /index.php?p=$1
答案 1 :(得分:3)
这是另一种变体:
RewriteEngine on
RewriteRule ^/i/(.*)$ - [L]
RewriteRule ^/css/(.*)$ - [L]
RewriteRule ^index.php$ - [L]
RewriteRule ^(.*)$ index.php?p=$1 [L,QSA]