1

我无法找到答案,所以它是:

我需要像这样获取 URL://mydomain/index.php?var=username(或 https://,如果用户想要安全连接)。

要使用我想使用的漂亮 URL://mydomain/user/username(这应该保留在浏览器 URL 行中)以获取://mydomain/index.php?var=username

我已将 .htaccess 配置为:

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

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

请你能帮帮我,我有什么问题吗?

4

1 回答 1

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">
于 2012-11-08T11:45:05.913 回答