PHP:如何在我的网站上获取另一个URL(页面)的内容而不更改栏中的地址

时间:2015-01-14 16:04:37

标签: php .htaccess

我正在使用如下的ModRewrite将我网站上的网址转换为SEO友好:

RewriteRule user/(.*)/$         seo-url-user-by-name.php?username=$1 

现在我正在编写seo-url-user-by-name.php的代码,我正在寻找一种方法在PHP中重定向到:

user.php?uid=<uid>

这样seo-url-user-by-name.php基本上会返回user.php?uid=<uid> BUT的内容,而不会将地址栏中的地址更改为user.php?uid=<uid>

我该怎么做?

2 个答案:

答案 0 :(得分:0)

只需在seo-url-user-by-name.php中包含user.php即可。要获得正确的查询字符串,您必须覆盖$ _GET中的值。

$_GET['uid'] = 'whatever you want';
include 'user.php';

答案 1 :(得分:0)

你正在倒退。您的代码应该输出的唯一网址是“友好”和#39;那些。这些是将在生成的HTML中显示的网址以及将显示在用户地址栏中的网址。

e.g。

<a href="/user.php?id=foo">Bad URL</a>         (URL #1)
<a href="/user/foo">This URL is fine</a>       (URL #2)

除了URL#2之外,你不应该输出任何内容。将干净(实际上,不存在)的URL转换为服务器上的任何内容都是您的服务器的责任。 PHP本身不应该关心也不会看到/user/foo URL。像往常一样,PHP将作为/user.php?id=foo调用,并照常开展业务。

远程用户永远不会看到重写发生,他们只会看到/user/foo的请求。