url重写.htaccess的问题
Posted
技术标签:
【中文标题】url重写.htaccess的问题【英文标题】:problem with url rewrite .htaccess 【发布时间】:2011-07-30 21:02:24 【问题描述】:我正在用 php 编写一个 mvc 框架,并尝试使用这种模式重写 url:
www.example.com/contact/send/
读作
www.example.com/index.php?url=contact/send/
所以我可以分解 $_GET['url'] 变量并用于 fw 进行路由。
它几乎在任何情况下都很好用,唯一的问题是,当我尝试使用一个也是文件夹的字符串时,ak 'admin',没有尾随斜杠,url 暴露变量。
像这样:
www.example.com/admin/ - 好的,网址保持原样
www.example.com/admin - 这是问题所在,url 将浏览器重定向到:
www.example.com/admin/?url=admin
$_GET['url'] 在这两种情况下都已设置并且工作正常,但我不希望公开 'url=admin'。
有什么办法吗?
谢谢!
.htaccess 是:
重写引擎开启
RewriteCond %SCRIPT_FILENAME !-f RewriteCond %REQUEST_FILENAME !-f
RewriteCond %SCRIPT_FILENAME -d RewriteCond %REQUEST_FILENAME -d
重写规则 ^(.*)$ index.php?url=$1 [PT,L]
【问题讨论】:
【参考方案1】:我认为你错过了一个! :
RewriteCond %REQUEST_FILENAME !-d
当它不是目录时你想重写。
编辑:或者可能是个例外
RewriteCond %REQUEST_URI !^/admin/?
【讨论】:
以上是关于url重写.htaccess的问题的主要内容,如果未能解决你的问题,请参考以下文章