2015-09-07 98 views
1

我们目前的网站URL是使用AngularJS建,因此有/#/网址,在其中诸如http://www.website.com/#/termsofuse重定向与/#/

短视,对于条款或使用该网址已被硬编码到移动应用程序,虽然这已经改变,但一些用户仍然有旧版本。

我们要搬到一个WordPress站点(在Azure上运行)和新的URL中使用的术语是http://www.website.com/termsofuse

的问题是,我想如果使用旧的URL重定向到新的URL(从旧版本的硬编码应用程序),但我无法找到一种方式与URL中的/#/做到这一点(否则我可以在旧URL使用HTML/JS重定向)。

我尝试过在Google和这里搜索解决方案,但虽然我确定有人遇到过这个问题,但我很难定义搜索条件以获得有价值的结果。

我也考虑发布这个WordPress的stackexchange,但它不是一个真正的WordPress的问题,我假设我需要使用其他方法。

欣赏任何想法或建议。提前致谢。


到目前为止,我已经从我可能需要一个JS的解决方案,并根据我发现下面的它看起来类似的反应教训(至少说明我如何在URL后的片段隔离)。由于我的问题是非常具体的,我只需要寻找具体的片段#/ termsofuse我可以使用这段代码(与midification)来寻找该字符串和重定向的基础上呢?

Checking URL fragment for a keyword

+1

可能重复http://stackoverflow.com/questions/15133023/hash-url-rewrite-in-htaccess ) – baao

+0

我想知道是否有可能在它指向的错误页面上有一些逻辑,阅读引用地址......(我不知道,它是一个过去的想法!) –

+0

谢谢@ michael这看起来像一个类似的问题,但阅读和链接的帖子,我仍然不确定如何解决我的问题。 – petebulley

回答

0

通过您的描述,因为您的新网站建立在没有AngularJs的WordPress上。

因此它很难以传统方式接近您的需求。由于标签#是一个永远不会传递到服务器上的客户端符号,因此Azure上的IIS不会获得URL的#之后的部分,URL重写模块也不会看到它。

因此,如果可能修改您的WordPress网站的主页,这里是一个解决方法,使用JavaScript获取#的URL后重定向到正确的URL。 这里是代码片段:

(function() { console.log(window.location.href); var url = window.location.href; params = url.split('#'); console.log(params); if(params[1]){ window.location.href = params[1]; } })();

[在.htaccess '散列' URL重写](的
+0

感谢这是解决一般问题的好方法。对我的具体需求唯一的问题是,我只希望这发生在一个特定的实例../#/termsofuse而不是其他实例,例如我使用锚点的地方。我实现了你的解决方案,它适用于URL重定向问题,但是当我在网站上使用锚点时,他们现在不能工作 - 是否有一种方法可以修改你的代码片段以便为一个变量工作? – petebulley

+0

我们可以检测往那它是一个锚之前重定向'如果(PARAMS [1] == '/ termsofuse'){ window.location.href =参数[1]; }' –

+0

完美的作品,谢谢你的帮助! – petebulley

1

可悲的是,这是不可能的,因为#后一切都不会发送到服务器。

很多人在这种情况下做的是使用javascript/ajax解决方案来加载页面。

+0

你有没有对JavaScript/AJAX我可以用什么建议? – petebulley