2011-08-01 8 views
2

私はかなりのURLにmod_rewriteを使用するウェブサイトを持っています。Apacheはhtaccessを無視します

example.com/id 
example.com/generate/id 

そして、これのhtaccessファイル:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^generate/([a-z0-9_-]+)$ generate.php?id=$1 [L,NC] 
RewriteRule ^([a-z0-9_-]+)$ contact.php?id=$1 [L,NC] 

最初のURLが正しく動作しますが、2番目されていない私は、主に2つのURLを持っています。 Apacheは404エラーを表示しています。なぜなら、 "generate"というフォルダを探していて、ドキュメントルートにhtaccessが見つからないからです。

+1

を試してみたことがありますか?ありがとういずれにしても、 'Options + FollowSymLinks'を' Options + FollowSymLinks -MultiViews'に変更し、 'Options + MultiViews'やそれに類するAFTER行がないことを確認してください。問題のあるURLをもう一度お試しください。それでも何もない場合は、デバッグの書き換えを有効にして(サーバの設定/仮想ホストのコンテキストに 'RewriteLogLevel 9'を置きます)、正確な詳細についてログの書き直しを確認してください。 – LazyOne

+0

ありがとうございます。エラーはMultiViewsオプションにあり、エラーを無効にすると消えます –

答えて

0

は、あなたがた.htaccess内の他の `Options`ディレクティブを持っていますかあなたは

RewriteRule ^generate\/([a-z0-9_-]+)$ generate.php?id=$1 [L,NC] 
関連する問題