Htaccess一个和两个参数

时间:2014-08-19 05:32:01

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

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

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

当用户单击或导航到具有两个参数的链接时。该页面正确地提供了请求的页面。该网址如下所示http://www.example.com/home/lesson/1.1.htm

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

我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

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

<base href="/" />

由于您要访问的网址为:http://www.example.com/home/lesson/1.1.htm,并且浏览器知道,“网页”为1.1.htm,“路径”为/home/lesson/。因此,如果浏览器看到相对URL(不以“http”或“/”开头),则需要在开头附加一个基础以便正确解析它。由于浏览器认为路径为/home/lesson/,因此它会将其附加到开头。