我尝试在.htaccess中写一个RewriteRule但是我有问题
我尝试重定向:
blog/entrada.php?id=2
致:
/blog/3D-touch
这是我尝试过但不起作用的多项内容之一:
RewriteRule ^blog\/entrada\.php\?id=2$ /blog/3D-touch [L,R=301]
我的规则有什么问题。如何有效地重定向?
由于
答案 0 :(得分:2)
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]
我们在目标网址末尾使用空白问号?来丢弃旧的查询字符串,否则这些查询字符串会默认显示在目标网址上。
如果要将重定向设为永久性,请将 R 更改为 R = 301 。
答案 1 :(得分:0)
使用此代码
RewriteRule blog/(.*) blog/entrada.php?id=$1
此代码将重定向所有具有博客/博客/ entrada.php的网址,并将博客/后面的值放到$ _GET ['id']
你应该在你的htaccess文件的顶部位置有以下代码
Options +FollowSymLinks
RewriteEngine on