1

次のような URL をリダイレクトしようとしています: http://getdotastats.com/sig/28755155.png

次のようなものに: http://getdotstats.com/sig/?aid=28755155

最初の URL は、存在しない架空の URL です。

私が思いついた正規表現は以下のとおりです。それを改善する方法を見ることができますか。正規表現の作成に必要なノウハウが不足しているため、グループに一致させ、必要のないものは無視しました。

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)sig/(.*)\.(.*)$ index.php?aid=$2 [NC,L]

上記を特定のディレクトリ (/sigs) の .htaccess に入れるだけでいいですか、それともメイン vhost ファイルに追加のディレクティブが必要ですか?

助けてくれてありがとう!

編集: futuretelematics に感謝します。以下の .htaccess を使用します。

RewriteEngine On
RewriteBase /
RewriteRule testpage\.html http://www.google.com [R]
RewriteRule ^/sig/([0-9]+\.(?:gif|png|jpg))$ index.php?aid=$1 [NC,L]

テストページは Google にリダイレクトされますが、画像のリダイレクトでは次のエラーがスローされます。

The requested URL /sig/28755155.png was not found on this server.

私たちは近くにいる必要があります。_

Vhost は次のようになります。

    DocumentRoot /home/www-dota2
    <Directory /home/www-dota2/>
            Options Indexes MultiViews +SymLinksIfOwnerMatch
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
4

1 に答える 1

0

まず、より具体的な正規表現を書くことをお勧めします: /sig/28755155.pngに一致させるには、次のようにします:

RewriteRule ^/sig/([0-9]+\.(?:gif|png|jpg))$ index.php?aid=$1 [NC,L]

正規表現 ^(. )sig/(. ).(.*)$ は/somesig/foo/bar/123.pngのようなパスと一致する可能性があることに注意してください

あなたの質問に答える:

  • はい、このルールをsigフォルダーの htaccess ファイルに入れることができます
  • はい、 sigフォルダーの htaccess のルールは、任意のサブフォルダーに対して計算されます (ej: /sig/foo/bar)

お役に立てれば

于 2013-06-10T19:15:56.640 に答える