0

私のウェブサイトには次のリンクがあります。

www.example.org/folder/files.php?file=folder/document.pdf

www.example.org/folder/files.php?force&file=2009.pdf


そして私はリダイレクトしたい:

www.example.org/files/folder/document.pdf

www.example.org/files/2009.pdf

私は試した :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^files/(.*)$ /files.php?file=$1 [R=301,L]  
</IfModule>

しかし、うまくいきません!助けはありますか?

4

2 に答える 2

1

RewriteRule ^files/(.*)$ /files.php?file=$1 [R=301,L]

このルールには2つの問題があります...最初に、一致しているものがルールの最初に表示される必要があり、次に書き直しているものが2番目に表示されます-それは逆になります。

ただし、これを逆にすると、2番目の問題が発生します。RewriteRuleではクエリ文字列を一致させることができないため、RewriteCondでそれらを一致させる必要があります。

一致www.example.org/folder/files.php?force&file=2009.pdfさせてリダイレクトするには、次のwww.example.org/files/2009.pdfようにします。

RewriteCond %{QUERY_STRING} ^force&file=(.*)$ [NC]
RewriteRule ^folder/files.php$ /files/%1 [R=301, L]

RewriteCondの%1括弧内にあるものと一致します。

于 2013-02-10T17:51:41.953 に答える
0

まずはグーグルで検索。htaccess について Google で最初に表示されるのは、htaccess リダイレクトです。(スペース Redirect /olddirectory/oldfile.html http://example.com/newdirectory/newfile.htmlのある同じ行)が機能するはずです。http://kb.mediatemple.net/questions/242/How+do+I+redirect+my+site+using+a+.htaccess+file%3Fに移動します。PHPもその作業を行います。質問する前にグーグルで調べてください。

于 2013-02-10T03:16:02.973 に答える