2017-08-07 10 views
0

私はサイトの管理を管理するためにpushstateを使用するプロジェクトに取り組んできました。このプロジェクトは現在、Godaddyの共有ホスティングアカウントでホストされており、私はちょうどHTTPDを使ってAmazon EC2 Linuxサーバーをセットアップし、新しいサーバーにファイルを転送しました。私は、例えば、http://example.com/page1に行くときに404でないように、pushstateナビゲーションに役立つ.htaccessファイルを追加しなければならなかった。Amazonのlinuxサーバーでアクセスできない。

godaddyサーバー上のhttp://example.com/page1のようなページにアクセスしようとすると、実際のページにアクセスするのではなく、ルートページを使用してURLパス/ページ1を追加し、JavaScriptが処理しますページ1のコンテンツを視覚的に表示します。しかし、Amazonサーバーでは404ページになります。私はかなり新しい.htaccessとpush状態になっているので、(Godaddyサーバー上で)この作業を手助けするために、スタックオーバーフローで見つけられるものを取り除かなければなりませんでした。

RewriteEngine On 
RewriteRule ^([^/d]+)/?$ index.html?id=$1 [QSA] 

ない私は正しいアプローチを使用していたり​​、なぜ一つのサーバが他に私に異なる結果を与えるかどうかわから:ここにファイルがですか?

おかげ

EDIT

は、だから私は、すでに以下の通り私のhttpd.confファイル内のすべてのallowOverideを設定している:私はHTTPDを使用していますここで注目に値する

<Directory "/"> 
    AllowOverride All 
</Directory> 

をApache2ではなく、これが違いを生むかどうかは分かりませんが、同じ手順であるようです。私もsudo service httpd restartを使ってサーバを再起動しましたが、それでも同じ結果になります。私はvhostオプションを試してみましたが、私が書き込んだものを覚えていない間に、私はそれを*/80に適用しましたので、正しく書かれていると確信しています。

さらにこれをデバッグして、どこが間違っているのかを正確に突き止めるために取ることができる手順はありますか?

答えて

0

怒鳴る設定のためのあなたのapache2の設定( /etc/apache2/apache2.conf )をご確認ください:

<Directory "/"> 
AllowOverride None 
</Directory> 

サーバーの設定は、カスタム設定で上書きすることを許可しないことを。 htaccessファイル。だから、あなたはapache2の設定であなたは2つのオプションがあることを発見した場合:

1)、AllowOverride Allと交換して設定を保存し、apache2のサービスを再起動します(サーバーワイドを適用)

2)はそれとしてそれを残すと追加AllowOverride Allあなたのサイトのvhost設定に厳密に従います(追加された仮想ホストにのみ適用されます)。

+0

私の質問を更新しました。 –

+0

apache webserverは、ubuntu/debian(CentOSディストリビューションではhttpdとして)の下にapache2としてあります。私は/ var/log/httpd/error_logをチェックして、あなたの問題や特定の仮想ホストのアクセス/エラーログファイルに関する追加情報を提供するエントリがあるかどうかを確認します。 –

+0

エラーログにエラーが表示されます。存在しない:/ var/www/html/site-feedback .htaccessファイルが取得されていないか、サーバーが上書きを許可していないことを示唆しています。 –

関連する問題