2011-07-06 17 views
2

を動作を停止し、私はのApacheのmod_rewriteが突然

ための言葉で
http://www.example.com/index.php?show=1 

URLのshorternに次の

http://www.example.com/1 

のようなURLを書き換えるために自分のサーバー上のmod_rewriteのセットを持っていました。私の開発サイトのサブドメインの下でシステムが動いていても、すべてうまくいきましたが、今度はNot Foundというエラーが表示されますが、手動でURLを入力すると/index.php?show=1はうまく動作します。だから、唯一の変更

は、それはまだ上public_htmlの内側に同じサーバーと同じサブフォルダ上で実行しているが

http://www.site.com

http://www.site.example.com

からの切り替えのURLですサーバーは新しいドメイン名だけがそのフォルダを指し示しています。

それが中に保存されているフォルダはディレクトリで実行している/public_html/paste

フル.htaccessファイルをホスティングが何らかの理由でそれを許可しないように私ははRewriteLogを有効にすることはできません

# Set Default File 
DirectoryIndex index.php 

# Turn ReWrite Engine On 
RewriteEngine on 

# Create Rule To Write URLs To Shorter Versions 
RewriteRule /([a-z0-9]+) /index.php?show=$1 

です。

+0

AllowOverrideセットを持っていることを確認する必要があり、あなたのホストがmod_rewriteのを持っており、htaccessのオーバーライドすることができますか? –

+0

確かに、サブドメイン経由でアクセスすると完全に動作していると言いましたが、自分のドメインを設定すると失敗しただけです。同じサーバー、アカウント、同じホスト上で実行されています。また、mod_writeを完全に使用している別のサイトもそのサーバーで動作しています。 – jskrwyk

答えて

1

おそらくRewriteBaseディレクティブを指定する必要があります。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase

私はまたOptions +FollowSymlinksは、あなたが今まで(それなしで文句を言わない仕事を書き換える)コンフィグチェーンまで、さらにそれをオフにした場合にもそこに持っていいだろうということに注意しましょう。

2

AllowOverrideディレクティブがそのフォルダに正しく設定されていないようです。 Apacheの設定では、プライマリドメインのために使用しているDirectoryまたはバーチャルホストがAll

http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

+0

この解決方法と上記の方法を試してみましたが、いずれも役に立たなかったようです。私のホストによると、mod_rewriteはうまく動いていて、サイトの設定に問題があるに違いないが、私の設定を精査したところ、エラーはない。ちょうど同じディレクトリからいくつかの単純な他の書き直しをしようとするので、それがmod_rewriteの問題か、サイトの設定の問題かどうか確認してください – jskrwyk