1

URLを書き換えたいので、次のコードを用意しました。

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?uname=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?uname=$1

www.mywebsite.com/usernameのような URL を書くと、問題なく動作し、エラーは発生しません。

ヒットゴーでwww.mywebsite.com/index.php?uname=usernameと書いても、どうすればこのURLを取得できますか。

URLにwww.mywebsite.com/index.php?uname=usernameと書いているところをwww.mywebsite.com/index.php?uname=usernameからwww.mywebsite.com/usernameに変更したいです。

WWW のプレフィックスの書き換え作業として、ユーザーが www.mywebsite.com/index.php?uname=username と書いたとしても、URL をwww.mywebsite.com/usernameに変更するのと同じ方法が必要です。

4

1 に答える 1

0

以下が機能するはずです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?uname=$1

ファイルまたはディレクトリが存在しないかどうかを確認し、存在しない場合は、それがユーザー名であると想定して URL を書き換えます。

から にリダイレクトするindex.php?uname=username場合/usernameは、これを の先頭に追加できますindex.php

if (strpos($_SERVER['REQUEST_URI'], "uname") !== false)
{
    header("Location: /" . $_GET['uname']);
}
于 2012-04-27T10:19:07.390 に答える