1



我有多个域扩展,因此编写了一个 mod_rewrite,它将 URL 重写回 .com,将原始扩展设置为查询参数:

    RewriteCond %{HTTP_HOST} ^api\.example\.(co\.)?(.*)$
    RewriteCond %{HTTP_HOST} !^api\.example\.com$
    RewriteRule ^(.*)$ http://api.example.com/$1?l=%2 [QSA,R]

这很好用,我的问题是我需要内部重定向始终api.example.com/index.php如此,例如:

api.example.fr/v1/users =>
(ext) api.example.com/v1/users/?l=fr
(int) api.example.com/index.php
我已经搞砸了一段时间了,希望对此事有任何帮助......

许多问候

4

1 回答 1

1

假设DOCUMENT_ROOTapi.example.fr相同api.example.com

你可以有你的代码是这样的:

RewriteCond %{HTTP_HOST} ^api\.example\.(co\.)?(.*)$
RewriteCond %{HTTP_HOST} !^api\.example\.com$
RewriteRule ^(.*)$ http://api.example.com/$1?l=%2 [QSA,R,L]

# add missing /v1/ if needed
RewriteCond $1 !=index.php
RewriteRule ^((?!v1/).*)$ /v1/$1 [R,L,NC]

RewriteCond %{HTTP_HOST} ^api\.example\.com$    
RewriteRule ^(?!index\.php) /index.php [L,NC]
于 2013-09-24T22:01:39.267 回答