我有一台响应www.server.com/api
的服务器我想让同一台服务器响应api.server.com
目前,我在我的vhosts文件中将api.server.com设置为www.server.com的别名,但我需要编写一条规则,使用api.server.com在所有请求中添加/ api域。
我试过这个:
RewriteEngine on
RewriteCond %{SERVER_NAME} api.server.com
RewriteRule ^(.*)$ /api/$1 [L,R=301]
但无论哪种方式我玩这个,我因为循环条件而得到500.
答案 0 :(得分:0)
根据您的描述,您不想要实现外部重定向。而是尝试:
RewriteEngine on
RewriteCond %{SERVER_NAME} ^api\.server\.com$
RewriteCond %{REQUEST_URI} !^/api
RewriteRule ^(.*)$ /api/$1 [L]
https://api.server.com/...
将/api/...
处理所有请求,而不会在浏览器中重写可见网址。此外,不会导致对/api/...
的直接或内部请求进行无休止的重写循环。
如果您运行当前版本的apache http服务器,则可以使用L
标志替换旧的END
标志,这将阻止额外的重写迭代,从而节省时间和性能。