如何解决太多重定向问题 - htaccess
How to solve too many redirects problem - htaccess
最近我对我的 API 域路径做了一个小改动,我不想更新我的应用程序,我想使用 .htaccess
文件解决 URL 问题.
我当前的 API 域名是:https://api.example.com
我需要重定向到 https://api.example.com/en/
我 API
- 英语 -
https://api.example.com/en
- 阿拉伯语 -
https://api.example.com/ar
但是我现在的Englsh API只有https://api.example.com
,我需要加上/en/
。
如果它已经是 /ar/
那么不需要做任何事情。
如果访问域只有https://api.example.com
,我想重定向到https://api.example.com/en/
。
因为在我直接从域提供我的 API 的英文版本之前,但现在我已经将其分离为 en
- 英语和 ar
阿拉伯语。
我的代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^api.example.com [NC]
RewriteRule ^(.*)$ https://api.example.com/en/ [R=301,L]
错误:
ERR_TOO_MANY_REDIRECTS
在地址栏我可以看到
http://api.example.com/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/
我该如何解决这个问题?
您需要检查所请求的 URL-path 是否已经以 /en/
或 /ar/
开头。例如:
RewriteCond %{HTTP_HOST} ^api\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/(en|ar)/
RewriteRule ^(.*)$ https://api.example.com/en/ [R=301,L]
或者,
RewriteCond %{HTTP_HOST} ^api\.example\.com [NC]
RewriteRule !^(en|ar)/ /en%{REQUEST_URI} [R=301,L]
旁白: 因为这是一个“API”,请求是否需要遵循重定向?
最近我对我的 API 域路径做了一个小改动,我不想更新我的应用程序,我想使用 .htaccess
文件解决 URL 问题.
我当前的 API 域名是:https://api.example.com
我需要重定向到 https://api.example.com/en/
我 API
- 英语 -
https://api.example.com/en
- 阿拉伯语 -
https://api.example.com/ar
但是我现在的Englsh API只有https://api.example.com
,我需要加上/en/
。
如果它已经是 /ar/
那么不需要做任何事情。
如果访问域只有https://api.example.com
,我想重定向到https://api.example.com/en/
。
因为在我直接从域提供我的 API 的英文版本之前,但现在我已经将其分离为 en
- 英语和 ar
阿拉伯语。
我的代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^api.example.com [NC]
RewriteRule ^(.*)$ https://api.example.com/en/ [R=301,L]
错误:
ERR_TOO_MANY_REDIRECTS
在地址栏我可以看到
http://api.example.com/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/en/
我该如何解决这个问题?
您需要检查所请求的 URL-path 是否已经以 /en/
或 /ar/
开头。例如:
RewriteCond %{HTTP_HOST} ^api\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/(en|ar)/
RewriteRule ^(.*)$ https://api.example.com/en/ [R=301,L]
或者,
RewriteCond %{HTTP_HOST} ^api\.example\.com [NC]
RewriteRule !^(en|ar)/ /en%{REQUEST_URI} [R=301,L]
旁白: 因为这是一个“API”,请求是否需要遵循重定向?