TypeError : Cannot read property 'replace' of undefined

TypeError : Cannot read property 'replace' of undefined

概览:

我想在目录结构内的默认页面 (index.html) 上重定向访问者,以便在使用 .htaccess 文件访问目录时显示(截至当前目录 index.html 正在加载)。

但是当我在 angular 应用程序中打开 $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用于直接通过域名重定向应用程序页面(prod/public/index.html)的访问者,截至目前,当用户访问该域时,当前目录(public_html) index.html 正在加载。

public_html => 产品 => .htaccess :

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /prod/public/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) /prod/public/#/ 
    RewriteCond %{HTTP_HOST} ^example.com [NC]
    RewriteRule ^(.*)$ http://www.example.com/prod/ [L,R=301]
</IfModule>

产品 => public => index.html :

<base href="/prod/public/">

一切正常 如果我从 app.config.js file.So 中删除 $locationProvider.html5Mode(true),当我注释掉 $locationProvider 代码时,# 中的一切正常模式。我可以毫无问题地到达 /#/abc,等等。一旦我将 $locationProvider 部件放回原处,就什么也没有发生。

Stack Overflow 上的相关问题没有成功:

$locationProvider.html5Mode(true) issues

Angular html5 mode not working in apache

里面 public_html => .htaccess 有这个规则:

DirectoryIndex index.html
RewriteEngine On

RewriteRule ^/?$ prod/public/index.html [L]

那么 public_html => prod => .htaccess 应该有这个:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.html [L]