Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RewriteRule.htaccess正在转发PHP变量_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

RewriteRule.htaccess正在转发PHP变量

RewriteRule.htaccess正在转发PHP变量,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在尝试使用.htaccess重写规则将我网站上的旧帖子转发到新地址 第一条规则是 RewriteCond %{QUERY_STRING} id=16 RewriteRule ^current_article\.php$ /article/basics-of-electrosurgery [L,R=301] 重写 到 第二条规则是 RewriteRule ^article/([A-Za-z0-9-]+)/?$ articles.php?id=$1 [NC] 改写成 除了最终结果是,我不希望

我正在尝试使用.htaccess重写规则将我网站上的旧帖子转发到新地址

第一条规则是

RewriteCond %{QUERY_STRING} id=16
RewriteRule ^current_article\.php$ /article/basics-of-electrosurgery [L,R=301]
重写 到

第二条规则是

RewriteRule ^article/([A-Za-z0-9-]+)/?$ articles.php?id=$1 [NC]
改写成


除了最终结果是,我不希望它将最终变量“?id=16”附加到地址之外,所有操作都正常。

您需要在第一条规则末尾添加一个
,并且可能应该为查询字符串匹配添加一些边界:

RewriteCond %{QUERY_STRING} (^|&)id=16($|&)
RewriteRule ^current_article\.php$ /article/basics-of-electrosurgery? [L,R=301]

当请求中有查询字符串时,它会自动附加到规则目标的末尾,除非您在目标中创建查询字符串。因此,在这里,您正在创建一个空的查询字符串,如果没有
QSA
标志,现有的查询字符串将不会被追加。

这里是我的新代码:RewriteCond%{query_string}(^ |&)id=16($|&)RewriteRule^ current_article\.php$/article/basics of electrosurgery?[L,R=301]重写规则^article/([A-Za-z0-9-]+)/?$articles.php?id=$1[NC]但它仍然包含id变量…@BrianBarrus清除浏览器缓存了吗?301重定向是永久性的,所以浏览器会缓存这些重定向。非常感谢。就是它(缓存)。