2017-06-30 10 views
0

かなり簡単 - ちょうどどのように私はこの書き換えない不思議:ので私が本当にしたいことは、そのパスに/後には何もあり、/フォルダ/サブフォルダ/ファイルを/?f = folder/subfolder/fileに書き換えるRewriteRule?

/folder/subfolder/file

/?f=folder/subfolder/file

をとフォルダ/サブフォルダの数が異なる場合があります(それにはまだ?f =が含まれていません)が、その前に?f =が追加されたパスにリダイレクトされます。

私はこの

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

を追加した場合、それはうまく動作しますが、すでにF = URLで?の存在を認識し、でその既存のリンクを切断していないのですか?F =そこに。

アイデア?

答えて

2

あなたは使用することができます:fクエリ文字列がすでにある場合に書き換えを行いません

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

を。
[QSA]では、可能な他のクエリーストリング値を保持します。

+1

それだそれ、ありがとうございました! –

1

はこれを試してみてください:

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