2016-08-17 8 views
2

は、私はコードを書くと次のような内容を持っているのhtaccessファイルを構築しています:の.htaccessのRewriteRule競合

RewriteEngine on 

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] # Handle page requests 
RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L] # Handle category requests 
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] # Handle author requests 

最初のルールは正常に動作しますが、後者は最初のルールとの競合を持つようです。 http://example.com/category/foobarまたはhttp://example.com/author/fooauthor/のURLにアクセスするたびに、インデックスファイルをまだ開こうとしているため、ページが見つからないというメッセージが表示されます。

これを回避する可能性はありますか?

答えて

2

あなたは最後の行には一般的なルールを設定することができます。

RewriteEngine on 

RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L]  
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] 

この問題は、最初の行のサポートので、理にかなっているすべてのURL

+0

ああ、起こりました。魅力的な作品、ありがとう。 – crozland23

+1

あなたの賛成投票は正しい答えを見るために他の人に助けることができます –

+0

私の評判のためにupvoteはまだありません。システムが許す限り、あなたの答えを10分で受け入れます。 – crozland23