相关疑难解决方法(0)

使用AngularJS html5Mode进行Spring Boot

我用spring boot启动我的web应用程序.它使用一个简单的主类来启动嵌入式tomcat服务器:

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
Run Code Online (Sandbox Code Playgroud)

我想以他能够处理将被激活的angularjs html5mode的方式配置服务器

$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)

来自其他用户的相关帖子显示您需要重定向到根目录.html5模式从url中删除hashbag.如果刷新页面,服务器找不到页面导致他不处理哈希.请参阅:AngularJS - 为什么在更改URL地址时$ routeProvider似乎不起作用,我收到404错误

html5 spring angularjs spring-boot

17
推荐指数
3
解决办法
2万
查看次数

如何使用htaccess或httpd.conf将所有子目录重定向到root?

我有一个索引文件,可以根据n个 PATH_INFO变量构建内容.

例:

site.com/A/B/n/
Run Code Online (Sandbox Code Playgroud)

应该使用index.php:

site.com/index.php?var1=A&var2=B&varN=n
 - or - 
site.com/index.php/A/B/n/
Run Code Online (Sandbox Code Playgroud)

代替:

site.com/A/B/n/index.php || which doesn't exist ||
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了许多变体:

RedirectMatch ^/.+/.*$ /
Run Code Online (Sandbox Code Playgroud)

没有成功.

我在这里有一个不优雅和不可扩展的解决方案:

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p1=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?p1=$1&p2=$2 [NC,L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?p1=$1&p2=$2&p3=$3 [NC,L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?p1=$1&p2=$2&p3=$3&p4=$4 [NC,L]
Run Code Online (Sandbox Code Playgroud)

此解决方案的问题:

  • 不雅和不可扩展,每个子目录需要手动线
  • 失败的非字母数字字符(主要是+,=和&)ex.site.com/ab&c/de+f/(请注意,即使将正则表达式更改为^([a-zA-Z0-9_- \ +\= \& ] +)/?$也无济于事,实际上会导致错误完全出局)

你能帮我吗?

apache .htaccess mod-rewrite apache-config

4
推荐指数
1
解决办法
1万
查看次数