2012-11-08 47 views
1

我无法找到答案,所以它是:的.htaccess向上一级目录问题

我需要得到的URL是这样的://mydomain/index.php?var=username(或https: //如果用户需要安全连接)。

要使用好的URL我想使用:// MYDOMAIN /用户/用户名(这应该留在浏览器URL行)来获得://mydomain/index.php?var=username

我有配置.htaccess到:

RewriteEngine on 
RewriteBase/
RewriteRule ^user/([^/]+)/?$ /index.php?var=$1 [L] 

但它不起作用。当我使用重定向[R,L]它工作正常,但在浏览器的URL行是丑陋的URL后:(

可以请你帮我,我有什么错?

+1

它看起来还好。当你说它不起作用时,究竟发生了什么? 404? 500? – megaflop

+0

它不返回错误,它显示页面,但似乎URL是这样的:// mydomain/user /而是od // mydomain /所以所有链接(包括相对路径都被定向到// mydomain/user/...而不是// mydomain/...) – gagath

回答

1

您的评论

它不返回错误,它显示的页面,但它似乎是,这样的URL是这样的://mydomain/user/ 而不是od/mydomain /所以所有链接(包括相对路径 针对// mydomain/user/...而不是// mydomain/...)

描述正常(预期)行为。你的浏览器认为这个页面是从// mydomain/user/userid提供的,因此所有的相关链接都将使用基本路径// mydomain/user /来解析。更重要的是,你的htaccess规则允许一个可选的结尾斜线// mydomain/user/userid /也是有效的。像这样的请求将解析所有相对于// mydomain/user/userid /的链接,因此“foo.html”的href将指向//mydomain/user/userid/foo.html。

这里唯一真正的解决方案是通过在开始处添加“/”来使所有链接相对于根文件夹。例如,而不是之类的东西:

<a href="foo.html"> 
<img src="images/pic.jpg" alt="" /> 
<link rel="stylesheet" type="text/css" href="css/styles.css" /> 
<form action="processme.php" method="post"> 

您应该使用

<a href="/foo.html"> 
<img src="/images/pic.jpg" alt="" /> 
<link rel="stylesheet" type="text/css" href="/css/styles.css" /> 
<form action="/processme.php" method="post"> 
+0

是的!谢谢。之后还有另一个问题,但这是我的PHP脚本的问题,所以应该完成。谢谢。 – gagath