这个问题已经困扰我一段时间了。
我创建了一个小型站点引擎,我正在使用 mod_rewrite 告诉引擎要处理的页面,SEO 友好链接是一个奖励:)。
这就是它今天的工作方式:
地址http://www.example.com/site/page 变为http://www.example.com/engine.php?address=page
但我想要的是:地址http://www.example.com/page 变成http://www.example.com/engine.php?address=page
如果我为调用(/站点)创建一个伪目录,一切正常,但是当我尝试从根目录执行相同操作时,奇怪的事情开始发生。
RewriteBase /
RewriteRule ^site/(.*) engine.php?%{QUERY_STRING}&address=$1
工作正常:/site/about/contacts 变为 eninge.php?address=about/contacts
RewriteBase /
RewriteRule ^(.*)$ eninge.php?%{QUERY_STRING}&address=$1
不起作用,由于某种原因 /about/contacts 变成 eninge.php?address=eninge.php