1

私は現在 mod_rewrite に取り組んでおり、誰かが親切に助けてくれることを望んでいたつまずきに遭遇しました

私はそのように構成されたサイトを持っています

https://www.abc.com/region1/
https://www.abc.com/region2/
https://www.abc.com/region3/

これらの各フォルダー内には、example1.php と example2.php という名前の 2 つのファイルがあり、どちらも動的です。

example1.php に関しては、example1.php?var1=1
の可能性があります。example2.php に関しては、example2.php?var1=1&var2=1 の可能性があります。

以下を使用しようとしましたが、サーバー500エラーがスローされます

RewriteEngine On
RewriteRule ^example1alias/ example1alias/([^/\.]+)/?$ example1.php?var1=$1 [L]
RewriteRule ^example1alias/ example1alias/?$ example1.php [L]
RewriteRule ^example2alias/ example2alias/([^/\.]+)/([^/\.]+)/?$ example2.php?var1=$1&var2=$2 [L]

このコードを含む私の .htaccess はサブフォルダー自体にあり、mod_rewrite を正しく理解している場合、^ はアクティブなパスから実行するようにルールに指示します

誰かが私が間違っていることを指摘できますか

いつものように、どんなアドバイスも大歓迎です

よろしく
バリー

4

1 に答える 1

1

ほとんどの場合、HTTP 500 (htaccess の場合) は、htaccess ファイルの構文エラーが原因です。

書き換えルールの構文は次のとおりだと思います: RewriteRule パターン置換 [フラグ] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule)

1 つのルールに対して複数のパターンがあるようですが、それらを 2 つの異なるルールに分けてみてください。

  • RewriteRule ^example2alias/ example2.php [L]
  • RewriteRule ^example2alias/([^/.]+)/([^/.]+)/?$ example2.php?var1=$1&var2=$2 [L,QSA]

また、「RewriteEngine On」と「Options FollowSymLinks」を htaccess ファイルに追加します。

于 2012-06-25T20:24:04.173 に答える