1

私は初めてmod_rewriteを試していますが、今のところあまり運がありません。私の現在のURLは。の形式ですhttp://mywebsite.com/user/index.php?u=123。URLを次のように書き換えるにはどうすればよいhttp://mywebsite.com/user/123ですか?

これまでのところ、私は(失敗して)次のことを試しましたが、500の内部サーバーエラーが発生しました

RewriteEngine On
RewriteRule ^user([^/]*)\.php$ /user/index.php?u=$1 [L]

どこが間違っているのですか?これはかなり簡単なはずです。

4

1 に答える 1

2

あなたはほとんどそれを正しかった。[^/]次までのすべてを一致させるのではなく、最後まですべての数字を一致させる必要があり/ます。after([\d]+)$が必要になり、最後に。を削除します。/user.php

RewriteEngine On
RewriteRule ^user/([\d]+)$ /user/index.php?u=$1 [L]

/注:右側の書き換えの先頭も削除しました/user。しかし、それは必要ではなかったかもしれません。/自分でテストしない限り、リーディングでどのように動作するかを思い出せません。

ほとんどの場合、500エラーの原因は書き換えループでした。最後に.phpと一致していたのでuser/index.php、ルールと一致し、無限ループに陥ります。

于 2012-06-13T01:47:37.157 に答える