-1

メンバーがいて、ログインすると に移動するmysite.php/id=usernameとします。ユーザー名は、実際のユーザー名によって常に異なります。

mod の書き換えで 1 行を使用して id= を削除し、ユーザー名だけを残すことはできますか? どうすればいいですか?

例: mysite.php?id=john- 私はそれがmysite/johnであり、他の人も同じであることを望みます。

4

4 に答える 4

1

あなたに書き直す/mysite/johnには、/mysite.php?id=john次を使用します:

RewriteBase /
RewriteRule ^mysite/([^/]+) mysite.php?id=$1 [L]

このルールは、http: //htaccess.madewithlove.be/でテストできます。

于 2012-11-05T23:24:18.243 に答える
0

これには使用できませんmod_rewrite。試すことができます(これも有効になっmod_substituteていることを確認してください):mod_filter

AddOutputFilterByType SUBSTITUTE text/html
Substitute s|/?index\.php\?id=([a-zA-Z0-9_-]+)|/index/$1/|i

これがうまくいくかどうかはわかりませんが、テストしていません。

次に、次を使用できますmod_rewrite

RewriteBase /
RewriteRule ^index/([a-zA-Z0-9_-]+) index.php?id=$1 [L]

アップデート:

index.php?id=usernameアドレスバーフォームの URL を次のように変更しようとしている場合は、質問を誤解していると思いますindex/username

RewriteCond %{QUERY_STRING} ^id=([a-zA-Z0-9_-]+)$
RewriteRule ^index\.php$ index/%1/? [R,L]
于 2012-11-05T23:42:11.517 に答える
0

もちろん、これを行うだけです:

RewriteRule ^mysite/([A-za-z0-9-]+).php$ mysite.php?id=$1 [L]

これは、ユーザー ID が文字 (大文字と小文字)、数字、またはダッシュであることを前提としています。適切な正規表現に文字を追加します。もちろん.+何に合わせてもいいんですけど、僕はあまりオープンなものは好きじゃないんです。

于 2012-11-05T23:19:22.850 に答える
0

試してみてください:

RewriteRule ^([a-zA-Z0-9\-_]+).php$ mysite.php?id=$1 [L]
于 2012-11-05T23:21:23.690 に答える