2015-09-05 54 views
0

如果请求中包含短语“ajax”,我想更改项目中的所有请求uri。比如我现在有:如果包含单词,请更改所有请求

http://www.address.com/ajax/getIdeas

而且当用户更改语言它在URL中添加/ru/。所以链接变成了http://www.address.com/ru/ajax/getIdeas,并且它不工作。我想要做的就是通过.htaccess更改包含单词ajaxru的所有链接。所以如果请求是http://www.address.com/ru/ajax/getIdeas它应该重定向到http://www.address.com/ajax/getIdeas。怎么做?

+0

如果选择的语言不会改变ajax请求应该做的事情,为什么不修改这个ajax请求指向'/ ajax/getIdeas'而不是'ajax/getIdeas'的脚本? – Sumurai8

+0

是的,我这样做了,但我正在寻找更好的选择。 –

回答

1

您可以使用此规则在DOCUMENT_ROOT/.htaccess文件,删除你的URL的2位数的语言光盘启动:

RewriteEngine On 

RewriteRule ^[a-z]{2}/(ajax/.*) /$1 [L,NC,R=301] 
+0

它看起来不错,但我需要删除所有'/ ajax /'调用的“ru” –

+1

好的,现在检查我的更新规则。 – anubhava

+0

如果解决问题,您可以通过点击答案左上角的刻度线标记答案。 – anubhava

1

我会建议不要制定规则重写,或重定向,你的Ajax请求。重定向将导致你的POST ajax请求停止工作。无论如何,一般而言,您的重写都会导致额外的不必要的工作。

在你的情况下,我会建议修复你的脚本,不要使用特定于语言的ajax-requests,因为它们不会导致不同的结果。您将使用相对于您的根(/ajax/page)而不是相对于您当前的网址(ajax/page)的网址。

+0

嘿,根据下面的回答使用.htaccess进行一些测试后,我决定将所有语言请求重定向到我的ajax回调的非语言请求。它工作得更快:) –

相关问题