ユーザーが自分のサイトにサインアップすると、example.com/profiles/[username]
にリダイレクトされる.htaccessファイルがあります。醜いURLはexample.com/profiles/?username=john
です。ここで、johnには任意の名前を使用できます。ユーザーが「example.com/profiles/[username]
」と表示されると、404が表示されるので、そのフレンドリーなURLを醜いURLにリダイレクトして、そのプロファイルを表示できるようにします。だからexample.com/profiles/john
を内部でexample.com/profiles/?username=john
にリダイレクトする必要があります。それは周りの他の方法ですので、どのように私はそれが作るのですか、mod_rewriteのURLは他の方法でリダイレクトされますか?
RewriteCond %{THE_REQUEST} /profiles/\?username=([^&\s]+) [NC]
RewriteRule^/profiles/%1? [L,R=302]
RewriteRule ^profiles/([\w-]+)/?$ /profiles/?username=$1 [L]
これらの条件が正常にURLの?username=john
一部を削除します。
ここに私の.htaccessの条件は?したがって、誰かがexample.com/profiles/john
を検索すると、example.com/profiles/?username=john
にリダイレクトされ、ページが正常に表示されます。 /profiles.user
へ/profiles/?username=user
をリダイレクトする
を使用することができます。ブラウザが 'example.com/profiles/john'にあると思ってもらいたいのですが、' profiles'ディレクトリのスクリプトの 'username = john'を' $ _GET'キー=>値として受け取るようにしますか? – Terminus
@Terminus上記の書き換えルールでは、example.com/profiles/?username=johnに行くとexample.com/profiles/johnにリダイレクトされ、ページが存在しないような404エラーが表示されます。だから私の解決策は、ユーザがフレンドリーなURLを入力すると、醜いURLにリダイレクトされ、プロファイルが表示され、404エラーが消えてしまうということでした。ブラウザのURLが友好的な状態にとどまり、醜い状態に変わらないようにすることが好ましいと思います。しかし、友好的なURLは404を表示しています。それが意味するのは – Bytes
です。あなたのウェブルートに 'profiles'ディレクトリとそのディレクトリの' index.php'ファイルがありますか(技術的には2つの質問ですが、ちょっと) – Terminus