0

私は自分のサイトにさまざまなブログをたくさん持っています。

mysite.com/news
mysite.com/blog
mysite.com/bits
など..

舞台裏で同じ php スクリプトを使用し、URL を整理したいので、これらのルールを設定しました。

# blogs
RewriteRule ^(bits|blog|news)(/?)$ news/?type=$1    
RewriteRule ^(bits|blog|news)/[a-zA-Z0-9_-]+/([0-9]+)(/?)$ news/article.php?type=$1&id=$2

今何が起こっているのかというと、「タイプ」が常にニュースとして流れているということですか? 理由がわかりません。

4

1 に答える 1

0

リダイレクト先の URL の先頭に「/」を追加することをお勧めします。また、末尾の「/」を括弧で囲む必要もありません。

また、ルールの最後に [L] フラグを付けて、.htaccess の残りの部分を参照しないようにします。

これを試して:

RewriteRule ^(bits|blog|news)/?$ /news/?type=$1 [L]
RewriteRule ^(bits|blog|news)/[a-zA-Z0-9_-]+/([0-9]+)/?$ /news/article.php?type=$1&id=$2 [L]

.. の RewriteCond を先頭に追加

RewriteCond %{QUERY_STRING} ^$

.. 各ルールに追加すると、クエリ文字列を含む URL が解析される可能性も除外されます。

于 2012-05-18T03:59:37.120 に答える