非常简单 - 只是想知道如何重写这个:
/folder/subfolder/file
/?f=folder/subfolder/file
文件夹/子文件夹的数量可能会有所不同,所以我真正想要的是在该路径中的/之后的任何内容(它还没有?f =在其中)重定向到路径,其中添加了?f =它
如果我添加此
RewriteRule ^(.*)$ ?f=$1 [L]
它工作得很好但是没有识别出URL中存在的?f =,并在那里打破了现有的链接?f /在那里。
有什么想法吗?
答案 0 :(得分:2)
您可以使用:
RewriteCond %{QUERY_STRING} !(?:^|&)f= [NC]
RewriteRule ^(.*)$ ?f=$1 [L,QSA]
如果f
查询字符串已经存在,则不进行重写
使用[QSA],您可以保留其他可能的查询字符串值。
答案 1 :(得分:1)
试试这个:
RewriteEngine On
RewriteRule ^(.[^\?]*)$ /?f=$1 [L]