.htaccess - 重写特定文件夹的通配符

时间:2017-10-09 18:09:22

标签: .htaccess redirect mod-rewrite

我想重定向所有内容:

http://example.com/api/ /* e.g. http://example.com/api/anything */

为:

http://localhost:3002/api/ /* e.g. http://localhost:3002/api/anything */

这是我尝试但失败的原因:

RewriteEngine On 
RewriteRule ^api/ http://localhost:3002/api/ [R=301,L]

我知道我可以单独做路线,例如

Redirect 301 /api/thisaddress http://localhost:3002/api/thisaddress 

但宁愿有一个通配符......有没有办法做到这一点?

更新

由于网页是单页应用,我目前已经在我的.htaccess文件中:

RewriteEngine On  
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

RewriteRule ^ /index.html [L]

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine On 

RewriteRule ^api/ http://localhost:3002%{REQUEST_URI} [NE,NC,R=301,L]

%{REQUEST_URI}表示以/api/...

开头的原始URI

或者,您也可以使用:

RewriteRule ^api/.*$ http://localhost:3002/$0 [NE,NC,R=301,L]