2012-04-21 18 views
0

自分の.htaccessファイルに次のような手口があります。すべてのことがローカルサーバーまたは運用サーバー上で正常に動作していますが、このファイルをリモートサーバーにアップロードするとエラーが発生します。500内部サーバーエラー、次の行は私にRewriteRule - mod-rewrite

.htaccessのが私の本番サーバー上ではなく、リモートサーバー上で正常に動作しているエラーを与えている

Options +FollowSymLinks 
Redirect /othersite.html http://www.othersite.com 
RewriteEngine on 
RewriteRule ^(.*)\.htm$ $1.php [nc] 
RewriteRule ^Old_One$ nomoreoldies.php [L] 
+2

最初のルールはすべての.htmファイルを.phpに書き換え、2番目のOld_Oneをnomoreoldies.phpに書き換えます。これはあなたの説明と一致しません。それはどういう意味ですか? –

答えて

1

ローカルファイルをリモートサーバーに展開するときは注意してください。 ftpを使ってファイルを編集し、実際に隠されている無効な文字をチェックします。無効な文字を削除する

2

そのmod_rewriteのは、そのサーバで有効とされて確認してくださいあなたは書き換えルールを使用することができますあなたのディレクトリの.htaccess経由で。 (コメントを加算)

編集:

追加ティップス:エラーログファイルを確認してください。 の場合無効なコマンドスペルチェックと間違ったファイルのエンコードがチェックされます。これは、他の文字のスペースを置き換える可能性があります。そのため、mod_rewriteは行の一部を認識しません。

vi(またはそれに類するエディタ)を使用してサーバー上に直接ファイル全体を再作成し、コピーを&貼り付けせずにサーバーにファイルが正しくエンコードされていることを確認してください。

+0

はいmod_rewriteは1つですが、確認する方法を知りません.htaccess経由で書き換えルールを使用することはできません – Adnan

+0

私は 'AllowOverride'(http://httpd.apache.org/docs/2.0/mod)のhttpd/vhost設定をチェックしてみました。 /core.html#allowoverride)、これはmod_rewriteの使用にほとんど影響しないかもしれないことがわかります。とにかく、サーバーエラーログにアクセスできますか? – jCoder

+0

これは、サーバーのエラーログ /home/nabuns/public_html/.htaccessです:無効なコマンド '(。*)。のRewriteRuleの\ XA0^\\ HTM $ \ XA0 $ 1.php \ XA0 [NC]'、おそらくスペルが間違っているか、サーバー構成に含まれていないモジュールで定義されています – Adnan