如何重写 url domain.com/?id=123456 => domain.com/123456/ [关闭]

Posted

技术标签:

【中文标题】如何重写 url domain.com/?id=123456 => domain.com/123456/ [关闭]【英文标题】:How to rewrite url domain.com/?id=123456 => domain.com/123456/ [closed] 【发布时间】:2013-02-02 06:59:35 【问题描述】:

如何使用搜索引擎友好的网址制作网站?我需要特殊的 php 代码而不是:

$_GET['id']

重写 URL 后如何访问 'id' 变量?

【问题讨论】:

What have you tried? 请参阅ask advice。仅供参考,那里有 很多 的教程解释了如何完全做到这一点。 【参考方案1】:

只需将其添加到您的 htaccess 文件中

Options +FollowSymLinks
RewriteEngine on

RewriteRule /(.*) ?id=$1 [QSA,NC,L]

注意:如果你已经有

Options +FollowSymLinks
RewriteEngine On

在您的 htaccess 文件中,只需放置

RewriteRule /(.*) ?id=$1 [QSA,NC,L]

在它下面,忽略其余的

您现在访问的是 domain.com/123456/,而不是访问 domain.com/?id=123456。然后在该页面上,您仍然可以像往常一样使用 $_GET['id']

【讨论】:

谢谢,如果url domain.com/?id1=123&id2=456中有两个变量怎么办【参考方案2】:

在您的示例中,您只需要在主目录中的 .htaccess 文件中添加以下代码。

Options +FollowSymLinks
RewriteEngine on

RewriteRule /(.*) ?id=$1

不要忘记创建链接domain.com/123456 样式。 Web 服务器将正确解析domain.com/123456。例如:

<a href='domain.com/123456'>the link</a>

这是一个非常基本的问题,互联网上有数百万的教程。结交一些谷歌搜索好友。

【讨论】:

URL重写后如何访问'id'变量? 你在这里定义它RewriteRule /(.*) ?id=$1如果你输入RewriteRule /(.*).html ?id=$1它需要url为domain.com/123456.html

以上是关于如何重写 url domain.com/?id=123456 => domain.com/123456/ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 htaccess 重写从 url 中删除此目录/文件夹?

url重写后如何知道原始url?

Apache 重写 - 在 PHP 中获取原始 URL

如何通过 IP 限制对特定重写的访问

用子目录重写url

使用 RewriteRules 和 404 进行 301 重定向