0

私はWebアプリを作成していて、modrewriteを使用してURLをきれいにしようとしています。htaccessファイルで以下を使用していますが、問題があります。/ membersに移動しようとすると、正しいページに移動しますが、/ members / 1234に移動しようとすると、member_profile.phpページではなくmembers.phpページに移動します。リクエストが最初のルールに一致しているためですが、これを修正する最善の方法がわかりません。最も制限の厳しいものから順に並べ替える必要がありますか、それとももっと正しい方法がありますか?ありがとう。

RewriteEngine On
# prevent indexing directories
Options -Indexes
# members section
RewriteRule ^members /scripts/members.php
# member profile page
RewriteRule ^members/([0-9]+) /scripts/member_profile.php?id=$1
# groups section
RewriteRule ^groups /scripts/groups.php
# group profile page
RewriteRule ^groups/([0-9]+) /scripts/group_profile.php?id=$1
4

1 に答える 1

1

次を使用して文字列の終わりと照合する必要があります(また、フラグを$使用して書き換えを停止する必要があります)。L

RewriteEngine On
# prevent indexing directories
Options -Indexes
# members section
RewriteRule ^members$ /scripts/members.php [L]
# member profile page
RewriteRule ^members/([0-9]+)$ /scripts/member_profile.php?id=$1 [L]
# groups section
RewriteRule ^groups$ /scripts/groups.php [L]
# group profile page
RewriteRule ^groups/([0-9]+)$ /scripts/group_profile.php?id=$1 [L]
于 2012-10-19T23:05:30.490 に答える