Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Regex htaccess重定向301,参数中带正斜杠赢得';行不通_Regex_.htaccess_Mod Rewrite_Redirect_Query String - Fatal编程技术网

Regex htaccess重定向301,参数中带正斜杠赢得';行不通

Regex htaccess重定向301,参数中带正斜杠赢得';行不通,regex,.htaccess,mod-rewrite,redirect,query-string,Regex,.htaccess,Mod Rewrite,Redirect,Query String,到目前为止,我做了一些研究,但没有找到解决办法。我有一个客户在URL上有这样一个旧的文件结构: /index.php?process=views/article.php&articleId=44102 哪个应该重定向到此URL: /news/title-of-article/ 我发现我的htacces文件中可能需要此文件: RewriteCond %{QUERY_STRING} &articleId=44102 [NC] RewriteRule .* /news/title-

到目前为止,我做了一些研究,但没有找到解决办法。我有一个客户在URL上有这样一个旧的文件结构:

/index.php?process=views/article.php&articleId=44102
哪个应该重定向到此URL:

/news/title-of-article/
我发现我的htacces文件中可能需要此文件:

RewriteCond %{QUERY_STRING} &articleId=44102 [NC]
RewriteRule .* /news/title-of-article/ [R=301,L]
当我用完整的URL测试它时,它不会重定向。但是当我去掉正斜杠时,就像这样:

/index.php?process=viewsarticle.php&articleId=44102
很好。所以我假设正斜杠就是这里的问题

我不是设置.htaccess文件的专家,这让我发疯,因为我似乎有一个显而易见的正确解决方案,但不知道为什么正斜杠会阻止重定向

如果你不能用最终的解决方案来回答,我希望有某种工具(网站、软件等),在那里我能够详细测试这些重写条件。也许有一些类似正则表达式测试程序的东西可以用于正则表达式,但只用于RewriteCond和RewriteRules,我可以用它们自己解决问题

提前谢谢
Marian

问题在于,您并没有在重写的URI中剥离查询字符串,因为生成的URL还包含
QUERY\u字符串
,如
process=views/article.php&articleId=44102
,并且它再次匹配规则,导致重定向循环

将规则更改为:

RewriteCond %{QUERY_STRING} &articleId=44102 [NC]
RewriteRule .* /news/title-of-article/? [R=301,L]

最后将删除现有的查询字符串。

谢谢您的回答。不幸的是,这并不能解决问题。它仍然没有重定向原始URL,但没有正斜杠的URL重定向良好。由于301缓存问题,请使用其他浏览器进行测试。我已在其他浏览器中进行了检查。同样的结果。它必须与查询字符串中的正斜杠相关。是否输入:
http://domain.com/index.php?process=views/article.php&articleId=44102
在您的浏览器中?我想我找到了。我必须把重写条件放在WordPress重写条件之前。现在问题解决了。非常感谢。