【问题标题】:problem with url rewrite .htaccessurl重写.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]

【问题讨论】:

    标签: .htaccess mod-rewrite url-routing


    【解决方案1】:

    我认为你错过了一个! :

    RewriteCond %{REQUEST_FILENAME} !-d
    

    当它不是目录时你想重写。

    编辑:或者可能是个例外

    RewriteCond %{REQUEST_URI} !^/admin/?
    

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多