概要の「置き換え」:ディレクトリが.htaccess
を使用してアクセスされたとき、私は表示するには、ディレクトリ構造内のデフォルトページ(index.htmlを)上で訪問者をリダイレクトしたいTypeError例外:プロパティを読み取ることができません未定義
(現在のディレクトリindex.htmlがロードされています)。
私の角のアプリケーションで$locationProvider.html5Mode(true)
をオンにすると、以下のエラーが表示されます。
コンソールエラー:アプリケーションの
ディレクトリ構造:
public_html
--prod
--public
--app
--controllers
--directives
--services
--app.config.js
--index.html
--.htaccess
.htaccess
public_htmlの=>
.htaccessファイル:
DirectoryIndex prod/public/index.html
この.htaccess
は直接ユーザーがドメインを訪問したときにロードされたindex.html今のように、現在のディレクトリ(public_html
)のドメイン名を使用して、アプリケーションページ(prod/public/index.html
)に訪問者をリダイレクトするために使用されます。
public_htmlの=>
PROD=>
の.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /prod/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /prod/public/#/$1
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/prod/$1 [L,R=301]
</IfModule>
PROD=>
公共=>
のindex.html:
<base href="/prod/public/">
すべて正常に動作しています$locationProvider.html5Mode(true)
を私のapp.config.js
ファイルから削除しました。$locationProvider
コードをコメントアウトすると、すべて#
モードで正常に動作します。 /#/abc
等に問題なくご連絡いただけます。私が$locationProvider
部品を戻すとすぐに何も起こりません。なしの成功とスタックオーバーフローの
関連問題:public_html => .htaccess
インサイド
$locationProvider.html5Mode(true) issues
Angular html5 mode not working in apache
あなたはこれらの行をもっと簡単に説明していただけますか?私は '#'のない 'urls'を望んでいます。 –
私はあなたの表示されたルールの多くを変更しようとしていなかった。私が見つけた主な問題は、 'DirectoryIndex prod/public/index.html'が正しくなく、' DirectoryIndex'がデフォルトのハンドラファイルを設定するだけなので、ドメインリクエストを '/ prod/public/index.html'に書き換えないことです。残念ながら、私はangularjsについてあまり知らないので、私はApache側でのみ助けることができます。私の更新されたルールをテストし、それがあなたの問題を修正するかどうかを確認してください。 – anubhava
期待通りに動作します。ありがとうございます –