0

HTACCESSファイルにmod_writeを設定して、URLの1つを書き換えようとしています。$ _GETを使用して、タグ名とオプションのページ番号(ページ付け用)をtags.phpというファイルに渡します。

varialblesを含むファイル名は次のとおりです:tags.php?t = textname&s =#

(上記のURLでは、#はページ番号です。)

mod_rewriteを使用してURLをdomain.com/tags/textname/#/として書き込もうとしていますが、ユーザーが最初のページにアクセスした場合はdomain.com/tags/textname/も許可したいと思います(ページネーション変数は必要ありません)。渡される)。

これが私のmod_rewriteコードです:

RewriteCond %{REQUEST_URI} !tags\.php    [NC]
RewriteRule ^tags/(.*)/$ /tags.php?t=$1 [NC,L]
RewriteRule ^tags/(.*)/(.*)/$ /tags.php?t=$1&s=$2 [QSA,NC,L]

domain.com/tags/textname/にアクセスすると、コードは完全に機能します。失敗するのは、domain.com / tags / textname / 1 /にアクセスしようとしたときです。これは、mod_rewriteがtags.php?t = textname&s = 1を渡す代わりに、 tags.php?t = textname / 1&s=を渡すためです。

2番目のルールが機能しないようにするために1番目または2番目のリダイレクターで間違っていることを誰かが見ていますか?

ありがとう!

4

1 に答える 1

0

理解した。RewriteRulesの反転は、より説明的なステートメントを最初に配置することで機能しました。この問題を抱えている他の人のために更新しています。

RewriteCond %{REQUEST_URI} !tags\.php    [NC]
RewriteRule ^tags/(.*)/(.*)/$ /tags.php?t=$1&s=$2 [QSA,NC,L] 
RewriteRule ^tags/(.*)/$ /tags.php?t=$1 [NC,L]
于 2013-03-02T22:54:37.677 に答える