.htaccess,单页应用程序和重写

时间:2017-03-28 18:59:06

标签: apache .htaccess

嘿伙计们,所以我的头衔听起来像你以前见过的,但我保证我的问题是相当独特的。我正在一个古老的传统cms中工作,这些cms做了一些时髦的东西与路线等。问题:我们建立一个需要住在这个CMS内的SPA。我们很接近,但我们遇到路由问题。启动CMS使用条目的id构建路由并附加html。所以条目可能看起来像/information/321.html。我希望它看起来像/ ourapp /。其次,因为它是SPA,所以超过/ ourapp / route的所有内容都需要返回应用程序的路径以进行应用程序路由。知道怎么解决这一切吗?

我完成了第一部分:

RewriteRule ^ourapp$ information/321.html [L

1 个答案:

答案 0 :(得分:1)

从重写的角度来看,这可能就是你要找的东西:

RewriteEngine on
RewriteRule ^/?ourapp/(.+)$ /information/321.html?route=$1 [L]
RewriteRule ^/?ourapp/?$ /information/321.html [L]

该规则在动态配置文件(.htaccess样式文件)中的http服务器主机配置中也同样有效。

如果您想使用动态配置文件,您必须确保http服务器(AllowOverride指令)完全考虑这些文件,并且该文件位于DOCUMENT_ROOT http主机的文件夹,可供http服务器进程读取。

一般提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。