0

このコード:

RewriteRule   ^([A-Za-z0-9\.]+)/(.*)$   /?p=profile&user_name=$1 [NC,L]

正常に動作します。

でも、これ:

RewriteRule   ^([A-Za-z0-9\.]+)/?(.*)$   /?p=profile&user_name=$1 [NC,L]

動作せず、内部サーバーエラーが発生します!!!

ユーザー名が機能した後、(/)の有無の両方が必要です。その例:

  • example.com/myusername/

  • example.com/myusername

  • example.com/myusername/family

  • example.com/myusername/family/

すべてが機能する必要があります!!!

4

2 に答える 2

1

ルールの内部ループがあるようです。他にルールがない場合は、それが何であるかはわかりませんが、クエリ文字列に対して明示的なチェックを追加できます。

RewriteCond %{QUERY_STRING} !user_name
RewriteRule ^([A-Za-z0-9\.]+)/? /?p=profile&user_name=$1 [L]
于 2012-08-06T16:44:42.587 に答える
0

コードを次のように置き換えることで問題を解決しました。

RewriteRule   ^([A-Za-z0-9\.]+)$  /?p=profile&user_name=$1 [NC,NS,L]
RewriteRule   ^([A-Za-z0-9\.]+)/(.*)$  /?p=profile&user_name=$1 [NC,L]
于 2012-08-06T21:40:34.820 に答える