2009-08-29 15 views
1

私はmod-rewriteに問題があります。正確に言えば、正しくリダイレ​​クトされません。すべては私のローカルサーバー上で正常に動作し、サイトがライブになったとき、問題が発生した...これは私が.htaccessファイルに持っているものです。

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

RewriteRule ^(tutorial|news|out|profile|script)/([0-9]+)/?$ $1.php?id=$2 [L] 
RewriteRule ^(tutorial|news)/([0-9]+)/post-comment/?$ $1.php?id=$2&action=postcmt [L] 

RewriteRule ^atelier/([0-9]+)/?$ img/gallery/view.php?id=$1 [L] 
RewriteRule ^([a-zA-Z0-9]+)/page/([0-9]+)/?$ $1.php?page=$2 [L] 
RewriteRule ^get/([a-zA-Z0-9]+)/([0-9]+)/?$ $1/get.php?id=$2 [L] 
RewriteRule ^get/brushes/(abr|img)/([0-9]+)/?$ brushes/$1.php?id=$2 [L] 

RewriteRule ^([a-zA-Z0-9]+)/(c|series|type)/([0-9]+)/page/([0-9]+)/?$ $1.php?$2=$3&page=$4 [L] 
RewriteRule ^([a-zA-Z0-9]+)/(c|series|type)/([0-9]+)/?$ $1.php?$2=$3 [L] 

RewriteRule ^design/preview/([0-9]+)/?$ design/preview.php?id=$1 [L] 
RewriteRule ^([a-zA-Z0-9]+)/send/?$ $1.php?action=send [L] 
RewriteRule ^askme/post-question/?$ ask.php?action=ask [L] 

私は、たとえばニュース/ 5 /を入力すると、それだけだろうnews.phpに私をリダイレクトしてください、design/preview/5は/ preview.phpをデザインするだけです。逆に、get/brushes/abr/1はうまくいきます...私は何が間違っているのか分かりません。

+0

どのバージョンのApacheを開発と運用に使用していますか? (解決策ではありません)しかし、私は、あなたが先頭に '/'をつけて、例えば/ ^デザイン/プレビューと/design-preview.php?id=$1のようにURLの先頭を付けるべきだと思います)。 –

+0

私はローカルサーバーで2.2.11を、オンラインでは2.0を使用しています。私はあなたが提案したものを試しましたが、違いはありません:( –

+0

両方とも同じosですか? –

答えて

2

MultiViewsこの現象が発生する可能性があります。それを無効にしてみてください:

Options -MultiViews 
+0

それを解決しました。 –

0

ちょうど最も単純な場所から始まり、後に複雑さを加えると、これはあなたのために機能しますか?

RewriteRule ^news/([^/\.]+)/?$ news.php?id=$1 [L,NC] 
+0

再びローカルサイトでは動作しますが、実際のサイトでは動作しません –

+0

書き換えエンジンがオンになっていても、あなたの.htaccessに "RewriteEngine on"があるのがわかりますが、 – Fenton

関連する問題