Apache htaccess重写规则避免循环

Apache htaccess重写规则避免循环,apache,.htaccess,redirect,Apache,.htaccess,Redirect,网站可以有如下链接:Website.com/urlwebsite.com/en/urlwebsite.com/de/url。 我试图通过以下代码将所有没有语言标记的查询重定向到特定页面: RewriteCond %{THE_REQUEST} !/en/(.*) RewriteCond %{THE_REQUEST} !/de/(.*) RewriteRule ^(.*)$ /page/$1 [L] 但是为根页面获取一个重定向循环。我可以这样排除主页 RewriteCond%{REQUEST\u

网站可以有如下链接:
Website.com/url
website.com/en/url
website.com/de/url
。 我试图通过以下代码将所有没有语言标记的查询重定向到特定页面:

RewriteCond %{THE_REQUEST} !/en/(.*)
RewriteCond %{THE_REQUEST} !/de/(.*)
RewriteRule ^(.*)$ /page/$1 [L]
但是为根页面获取一个重定向循环。我可以这样排除主页

RewriteCond%{REQUEST\u URI}^/$

但我想知道,我做错了什么,在这种情况下,这是否也是避免主页出现循环的一种方法?

让它像这样:

RewriteCond %{REQUEST_URI} !/(?:en|de|page)/ [NC]
RewriteRule .* page/$0 [L]

重要的是,您需要在排除列表中添加
/page/
,因为您的规则现在正在重写为
/page/

,以进行整体测试。htaccess只是您的代码。是重定向错误还是由于无限循环导致的500内部错误(顺便说一句,此规则适用于我的apache)我在我的浏览器中看到:ERR\u TO \u MANY\u redirects在
page/
目录中是否也有.htaccess?如果不是,那一定是缓存问题。尝试在新浏览器中进行测试。