RewriteRule重写/文件夹/子文件夹/文件到/?f =文件夹/子文件夹/文件?

时间:2017-06-30 05:43:40

标签: .htaccess mod-rewrite url-rewriting

非常简单 - 只是想知道如何重写这个:

/folder/subfolder/file

/?f=folder/subfolder/file

文件夹/子文件夹的数量可能会有所不同,所以我真正想要的是在该路径中的/之后的任何内容(它还没有?f =在其中)重定向到路径,其中添加了?f =它

如果我添加此

RewriteRule ^(.*)$ ?f=$1 [L]

它工作得很好但是没有识别出URL中存在的?f =,并在那里打破了现有的链接?f /在那里。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用:

RewriteCond %{QUERY_STRING} !(?:^|&)f= [NC]
RewriteRule ^(.*)$ ?f=$1 [L,QSA] 

如果f查询字符串已经存在,则不进行重写 使用[QSA],您可以保留其他可能的查询字符串值。

答案 1 :(得分:1)

试试这个:

RewriteEngine On
RewriteRule ^(.[^\?]*)$ /?f=$1 [L]