TypeError:无法读取属性'替换'未定义的

时间:2016-08-18 20:08:47

标签: angularjs .htaccess mod-rewrite base-tag html5mode

概述:

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

但是当我在角度应用程序中打开.htaccess时会出现错误。

控制台错误:

enter image description here

应用程序的目录结构:

$locationProvider.html5Mode(true)

public_html public_html --prod --public --app --controllers --directives --services --app.config.js --index.html --.htaccess .htaccess .htaccess:

=>

DirectoryIndex prod/public/index.html 用于直接使用域名重定向应用程序页面(.htaccess)上的访问者,截至目前用户访问域时当前目录(prod/public/index.html) index.html正在加载。

public_html public_html prod => .htaccess:

=>

prod <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> 公开 => index.html:

=>

一切正常如果我从<base href="/prod/public/"> 文件中删除了$locationProvider.html5Mode(true)。因此,当我注释掉app.config.js代码时,一切都在$locationProvider模式下正常运行。我可以毫无问题地到达#等。一旦我将/#/abc部分放回去,就没有任何事情发生。

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

$locationProvider.html5Mode(true) issues

Angular html5 mode not working in apache

1 个答案:

答案 0 :(得分:1)

内部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]