.htaccess htaccess中的重写问题

.htaccess htaccess中的重写问题,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,所以我有一种奇怪的麻烦。我有一个重写规则 mysite.com/brand.php?brand=example&ref=ex1 到 我设法做到了,但还有另一个问题:当你输入这个: mysite.com/brand/example/ex1.html 或 我明白了: mysite.com/brand/example/ex1?ref=ex1.php&brand=example 有人能告诉我为什么我得到这个重定向和如何摆脱它吗 我试过这个: RedirectMatch ^bra

所以我有一种奇怪的麻烦。我有一个重写规则

mysite.com/brand.php?brand=example&ref=ex1

我设法做到了,但还有另一个问题:当你输入这个:

mysite.com/brand/example/ex1.html

我明白了:

mysite.com/brand/example/ex1?ref=ex1.php&brand=example
有人能告诉我为什么我得到这个重定向和如何摆脱它吗

我试过这个:

RedirectMatch   ^brand/([A-Za-z0-9-\.\_]+)/([A-Za-z0-9-\.\_]+)php$ /brand/$1/$2
或者这个:

RedirectMatch   ^brand/([A-Za-z0-9-\.\_]+)/([A-Za-z0-9-\.\_]+)\.php$ /brand/$1/$2
但它根本不起作用


求求你,任何人帮帮我

我会使用
mod_rewrite
进行以下操作:

RewriteEngine On
RewriteCond %{REQUEST_URI} =/brand.php
RewriteCond %{QUERY_STRING} ^brand=([^&]+&ref=(.+)$
RewriteRule .* /brand/%1/%2? [L,R]
只有当
RewriteCond
RewriteCond都有效时,才应用
RewriteRule
。第一个
RewriteCond
将请求URL与
/brand.php
进行比较,第二个将正则表达式与查询字符串进行匹配,并将匹配项分别存储在
%1
%2

重写规则中
是使用查询字符串中匹配的部分重写的URL

RedirectMatch   ^brand/([A-Za-z0-9-\.\_]+)/([A-Za-z0-9-\.\_]+)\.php$ /brand/$1/$2
RewriteEngine On
RewriteCond %{REQUEST_URI} =/brand.php
RewriteCond %{QUERY_STRING} ^brand=([^&]+&ref=(.+)$
RewriteRule .* /brand/%1/%2? [L,R]