【问题标题】:Htaccess one and two parametershtaccess 一和二参数
【发布时间】:2014-08-19 14:10:37
【问题描述】:

我是 htaccess 的新手,我遇到了问题。请参阅下面的我的 htaccess 代码。

RewriteEngine On
RewriteRule ^([^/]*)/lesson/([^/]*)\.htm$ /thesis/index.php?page=$1&lesson=$2 [L]
RewriteRule ^([^/]*)\.htm$ /Thesis/index.php?page=$1 [L]

当用户单击或导航到具有两个参数的链接时。该页面正确地提供了请求的页面。 URL 看起来像这样http://www.example.com/home/lesson/1.1.htm

但在那之后,当用户单击具有一个参数的链接时,例如是注销脚本。一切都出错了。网址变成了http://www.example.com/home/lesson/logout.htm

我希望有人可以帮助我。

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    看起来您有相对 URL,并且由于 URL 中的/,您的基础搞砸了。您应该将所有链接更改为绝对 URL,或者在页面标题中包含基本 URI:

    <base href="/" />
    

    因为您访问的 URL 是:http://www.example.com/home/lesson/1.1.htm,而就浏览器所知,“页面”是 1.1.htm,“路径”是 /home/lesson/。因此,如果浏览器看到一个相对 URL(不是以“http”或“/”开头的东西),它需要在开头附加一个 base 以便正确解析它。由于浏览器认为路径是/home/lesson/,因此将其附加到开头。

    【讨论】:

    • 感谢 Jon Lin,它可以工作了......现在我可以继续下一个模块了。这是因为你。非常感谢...
    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2020-07-23
    • 2021-10-12
    相关资源
    最近更新 更多