web-dev-qa-db-ja.com

私のウェブサイトはInstagramアプリの「index.php」アカウントにリダイレクトし続けます

私のhtaccessコードは、example.com/username Instagramアプリの任意のユーザー名へのリダイレクトを許可しています。しかし、example.comを開くと、index.phpというInstagramアカウントにリダイレクトされます。どうすれば修正できますか?これが私のhtaccessです

RedirectMatch 302 /(.+) instagram://user?username=$1
2
Bangladesh 71

これはおそらく、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
2
MrWhite