私のhtaccessコードは、example.com/username
Instagramアプリの任意のユーザー名へのリダイレクトを許可しています。しかし、example.com
を開くと、index.php
というInstagramアカウントにリダイレクトされます。どうすれば修正できますか?これが私のhtaccessです
RedirectMatch 302 /(.+) instagram://user?username=$1
これはおそらく、mod_dirがディレクトリインデックスのサブリクエストを発行したためです(つまり、index.php
)。
index.php
へのリクエストを明確に除外するために、ネガティブ先読みを正規表現に追加してみてください。例えば:
RedirectMatch 302 /(?!index\.php)(.+) instagram://user?username=$1
PDATE:index.html
(別のディレクトリインデックス)に問題がある場合は、これも除外できます。
RedirectMatch 302 /(?!index\.php|index\.html)(.+) instagram://user?username=$1
または、ディレクトリインデックスを完全に無効にしてリダイレクトeverything(.+
を.*
に変更)。例えば:
DirectoryIndex disabled
RedirectMatch 302 /(.*) instagram://user?username=$1
ただし、これはusernameが指定されていない場合でもリダイレクトします。
既存のサイトとの競合を避けるために、おそらくこの「インスタグラム」URLを一意にすることをお勧めします。そうすることで、既存のURLを上書きしません。例:example.com/instagram/<username>
。その後、上記のディレクティブを次のように単純化できます。
RedirectMatch 302 /instagram/(.+) instagram://user?username=$1
または、example.com/i/<username>
のようなものに減らすこともできます-それがまだ一意であれば。
RedirectMatch 302 /i/(.+) instagram://user?username=$1