我创建了AngularJS Application。
使用以下网址正常工作:
http://localhost/AngularDemo/about
如果我像下面那样修改上述网址,则会将我带到404页面:
http://localhost/AngularDemo%2Fabout
我在.htaccess文件中做了一些更改
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html#! [L]
答案 0 :(得分:0)
这是默认的Apache行为。 URL路径中的URL编码斜杠(即%2F
)将隐式触发系统生成的 404.这被视为"安全功能"。
如果您需要明确允许URL中的编码斜杠,那么您可以在服务器配置中启用此功能:
AllowEncodedSlashes On
参考:
https://httpd.apache.org/docs/2.4/mod/core.html#allowencodedslashes
某些用户代理如Linked In ...
但是,这通常不是问题。 "用户代理"不应该以这种方式编码URL。 /AngularDemo%2Fabout
可能是与/AngularDemo/about
不同的网址。
答案 1 :(得分:0)
我解决了以下代码。您可以在app.js文件中写入
$locationProvider.hashPrefix('');