0

簡単な質問のように見えます。しかし、私は単に理解していません:

この htaccess ルールは機能します。

RewriteEngine On
RewriteRule ^m(.+)$ ?s=$1

しかし、これはしません:

RewriteEngine On
RewriteRule ^(.+)$ ?s=$1

内部サーバー エラーを返します。その正規表現の何が問題になっていますか? 機能するためには何を変更する必要がありますか?

4

2 に答える 2

0

「機能しない」とはどういう意味かわかりませんが、書き換えループに陥る可能性があると思います。

これを試して:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^?s=
RewriteRule ^(.+)$ ?s=$1

私はこれをテストしていませんが、それがすべきことは、?sパラメータがまだ追加されていない場合にのみ書き直すことです。

于 2012-05-02T15:30:49.760 に答える
0

ああ、RewriteConds で実際のクエリ文字列を探すこともできることに気付きました。あなたは試すことができます:

RewriteEngine On
RewriteCond %{QUERY_STRING} !s=
RewriteRule ^(.+)$ ?s=$1
于 2012-05-02T16:21:26.610 に答える