Apache 重写.htaccess文件的规则不起作用

Apache 重写.htaccess文件的规则不起作用,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我需要重定向用户,如下所示: “www.example.com/text1?a=1&b=2”至“www.example.com/text2?a=1&b=2&c=3” 为此,在.htaccess文件中,我使用以下mod rewrite规则: RewriteEngine on RewriteRule /text1(.*) www.example.com/**text2?c=3 [R=301,L,QSA] 还尝试: RewriteEngine on RewriteRule /text

我需要重定向用户,如下所示: “www.example.com/text1?a=1&b=2”至“www.example.com/text2?a=1&b=2&c=3”

为此,在.htaccess文件中,我使用以下mod rewrite规则:

  RewriteEngine on
  RewriteRule /text1(.*) www.example.com/**text2?c=3 [R=301,L,QSA]
还尝试:

  RewriteEngine on
  RewriteRule /text1(.*) www.example.com/**text2$1&c=3
然而,上述情况对我来说并不适用,如果我试图访问“www.example.com/text1?a=1&b=2”,我会得到一个直接的404

有人能给点建议吗


非常感谢。

请您尝试以下内容,这主要是一个内部重定向,因此我们不需要在这里设置
R=301

RewriteEngine ON
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^text1/?$ /text2?%{QUERY_STRING}&c=3 [NC,NE,L]
或者根据anubhava先生的评论,您可以尝试以下内容。我会在早上和他更多地讨论我的上述问题,因为现在已经是深夜了

RewriteEngine ON
RewriteRule ^text1/?$ /text2?c=3 [NC,QSA,L]
说明:

RewriteEngine ON
:将RewriteEngine
设置为ON
以便允许在apache(.htaccess文件)中编写规则MOD rewrite规则

重写规则

  • 左侧的
    ^text1/?$
    检查URI是否从
    text1
    开始,并带有可选的
    /
    ,然后转到此规则的右侧并重定向
  • /text2?%{QUERY\u STRING}&c=3[NC,NE,L]
    :在这里创建uri的新值,它从
    text2
    开始,然后
    %{QUERY\u STRING}
    是默认变量,它具有已传递的查询字符串的值(在
    之后?
    a=1&b=2
    ,因此它添加了旧uri的查询字符串,然后
    &c=3
    将新值添加到此URI。现在谈到标志
    NC,NE,L
    L
    表示这种情况下的最后一条规则,
    NC
    表示忽略URI(左侧)中应用的大小写,
    NE
    表示不转换值(您在注释中得到
    %26

@MagicStar,请尝试一下更新的规则好吗?请确保在测试之前清除浏览器缓存。这对我来说非常清楚,再次感谢!)@MagicStar,欢迎您,继续在这个伟大的网站上做问答,干杯应该是:
重写规则^text1/?$/text2?c=3[NC,QSA,L]
,否则
/text1
将变为
/text2&c=3
URI@anubhava,先生,谢谢您现在让我来。但是,先生,它没有来自传递的URL的查询字符串部分号(或者我应该在这里添加条件来检查查询字符串是否不为NULL)?这就是我采用这种方法的原因,我也对它进行了测试。通过查看OP的URL,它看起来不错,如果我遗漏了什么,请告诉我谢谢