我试图在.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