我有一个包含一些规则的htaccess文件,我现在想要添加另一个删除URL部分的规则
www.mydomain.com/?generations/anything
成为
www.mydomain.com/anything
(任何意味着任何其他字符)。我可以在没有?的情况下使其工作,但我似乎无法匹配/删除?我试过了:
RewriteRule ^\?generations/(.*)$ /$1 [L]
RewriteCond %{QUERY_STRING} ^generations/(.*)$
RewriteRule ^generations/(.*)$ $1 [L]
RewriteCond %{QUERY_STRING} ^generations/(.*)$
RewriteRule ^([^?]*)?generations/(.*)$ $2%1 [L]
RewriteRule ^([^?]*)?generations/(.*)$ $1$2 [QSA,L]
有人可以创建一个工作规则 - 并解释为什么我上面的第三次尝试不起作用?我可能会看到前两个问题,但第三个和第四个应该有效...
答案 0 :(得分:1)
你到达那里3,但查询字符串不包含在RewriteRule匹配中。所以你只想匹配空字符串:
RewriteCond %{QUERY_STRING} ^generations/(.*)$
RewriteRule ^$ %1? [L]
但是,如果您希望/任何内容成为浏览器中访问的URL,那么您认为它也是错误的。你真的想要这个:
RewriteRule ^(.*)$ ?generations/$1 [L]