何时有重写规则?id=



我试图在.htaccess中编写RewriteRule,但在中遇到问题

我尝试从重定向

blog/entrada.php?id=2 

收件人:

/blog/3D-touch

这是我尝试过但没有成功的多种方法之一:

RewriteRule ^blog/entrada.php?id=2$ /blog/3D-touch [L,R=301]

我的规则出了什么问题。如何有效地重定向?

感谢

Querystring不是RewriteRule指令中匹配的一部分,要重定向查询字符串,您需要使用RewriteCond以下选项之一:

选项1

RewriteEngine on
RewriteCond %{THE_REQUEST} /blog/entrada.php?id=2 [NC]
RewriteRule ^ /blog/3D-touch? [NC,L,R]

选项2

RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=2$ [NC]
RewriteRule ^blog/entrada.php$ /blog/3D-touch? [NC,L,R]

我们使用了一个空问号在目标url的末尾丢弃旧的查询字符串,否则这些查询字符串默认会被附加到目标url。

如果要永久重定向,请将R更改为R=301

使用此代码

RewriteRule blog/(.*) blog/entrada.php?id=$1

该代码将把所有有blog/的url重定向到blog/entrada.php,并放在blog/的值后面到$_GET['id']

您应该在htaccess文件的顶部位置有以下代码

Options +FollowSymLinks
RewriteEngine on

最新更新