.htaccess 如果包含单词,则更改所有请求

.htaccess 如果包含单词,则更改所有请求,.htaccess,.htaccess,如果请求包含短语“ajax”,我想更改项目中的所有请求uri。例如,现在我有: http://www.address.com/ajax/getIdeas 当用户更改语言时,它会在URL中添加/ru/。于是链接变成了http://www.address.com/ru/ajax/getIdeas并且它不工作。我只想通过.htaccess更改包含wordajax和ru的所有链接。因此,如果请求是http://www.address.com/ru/ajax/getIdeas它应该重定向到http://w

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

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


当用户更改语言时,它会在URL中添加
/ru/
。于是链接变成了
http://www.address.com/ru/ajax/getIdeas
并且它不工作。我只想通过.htaccess更改包含word
ajax
ru
的所有链接。因此,如果请求是
http://www.address.com/ru/ajax/getIdeas
它应该重定向到
http://www.address.com/ajax/getIdeas
。如何操作?

您可以在
文档\u ROOT/.htaccess
文件中使用此规则删除URL开头的两位语言:

RewriteEngine On

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

我建议不要制定规则来重写或重定向ajax请求。重定向将导致POST ajax请求停止工作。不管怎样,重写通常都会导致额外的、不必要的工作发生


在您的情况下,我建议您修改脚本,不要使用特定于语言的ajax请求,因为它们不会导致不同的结果。您将使用相对于根目录(
/ajax/page
)的url,而不是相对于当前url(
ajax/page
)。

如果所选语言没有改变ajax请求应该执行的操作,为什么不修复执行此ajax请求的脚本以指向
/ajax/getIdeas
,而不是
ajax/getIdeas
?是的,我这样做了,但我正在寻找更好的选择。它看起来不错,但我需要删除所有
/ajax/
调用的“ru”如果成功,您可以通过单击我的答案左上角的勾号将答案标记为已接受。嘿,根据下面使用.htaccess的答案进行测试后,我决定将所有语言请求重定向到ajax回调的非语言请求。它工作得更快:)