0

.htaccessには次の行があります。

RewriteRule ^/?movielist/([0-9]+)\-([0-9]+)\.html$ modules.php?module=movies&do=main&pg=$1&ipp=$2 [L]
RewriteRule ^/?movielist/(genre|year|stars)/([a-zA-Z0-0%20]+)$ modules.php?module=movies&do=main&sort=$1&$1=$2 [L]
RewriteRule ^/?movielist/(genre|year|stars)/([a-zA-Z0-0%20]+)/([0-9]+)\-([0-9]+)\.html$ modules.php?pg=1&ipp=20&module=movies&do=main&sort=$1&$1=$2 [L]

たとえば、URLを/ movielist / Dramaにポイントすると、スクリプトは機能します。問題はページネーションにあります。/movielist/Drama/1-20.htmlをポイントすると、404エラーが発生します。なぜアイデアはありますか?

書き換えられていないURLをポイントすると、機能します。

4

1 に答える 1

0

ルールにいくつかの問題があります。最後のルール(ページネーションと一致するルール)のターゲットは、これらの番号のいずれも使用していません。

modules.php?pg=1&ipp=20&module=movies&do=main&sort=$1&$1=$2 [L]

したがって、$3および$4後方参照は使用されません。

modules.php?pg=$3&ipp=$4&module=movies&do=main&sort=$1&$1=$2 [L]

それ以外は、バニラApacheインストールでこれらのルールを空白のhtaccessに配置すると、404が取得されません。/movielist/genre/Drama/1-12.htmlに書き換えられますが/modules.php?pg=1&ipp=20&module=movies&do=main&sort=genre&genre=Drama112は使用されません。

于 2012-08-29T00:16:00.417 に答える