我是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
我希望有人可以帮助我。
答案 0 :(得分:0)
看起来你有相对的网址,而且由于网址中有/
,你的基础就搞砸了。您应该将所有链接更改为绝对URL,或者在页面标题中包含基本URI:
<base href="/" />
由于您要访问的网址为:http://www.example.com/home/lesson/1.1.htm
,并且浏览器知道,“网页”为1.1.htm
,“路径”为/home/lesson/
。因此,如果浏览器看到相对URL(不以“http”或“/”开头),则需要在开头附加一个基础以便正确解析它。由于浏览器认为路径为/home/lesson/
,因此它会将其附加到开头。