我正在使用如下的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>
我该怎么做?
答案 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
的请求。