规则实际上很简单。
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^path2/myoldurl\.php$ /mynewurl? [R=301,NE,NC,L]
RewriteRule ^path2/myoldur\.php$ /mynewurl? [R=301,NE,NC,L]
第一条规则已存在多年,并且正在发挥作用。但是当我试图添加第二个从第一个字母中删除一个字母时,根本就没有工作。当我使用Redirect或RedirectMatch更改RewriteRule时,它正在工作。
我不能使用RedirectMatch和Redirect因为我还要清除查询字符串。
有什么想法它不起作用吗?我已经重新启动了apache。可以在某些地方使用这些RewriteRule缓存吗?
我刚刚意识到,即使删除了这两条规则,旧规则仍然有效。但我确定.htaccess正在工作,因为当我在此文件中添加Redirect 301或RedirectMatch时,它会重定向新的url。请帮忙!!!!
我意识到的另一件事是,一旦我添加了一个新的Redirect脚本,它就可以工作了。它在我取消它之后仍在工作:(
答案 0 :(得分:1)
您可以简单地将该字母l
设为可选。所以它将匹配其中任何一个,你有一个重写。
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^path2/myoldurl?\.php$ /mynewurl? [R=301,NE,NC,L]
在尝试新规则之前清除浏览器缓存。