构建我的 NextJs 应用程序并运行后,它可以使用以下 .htaccess 在 apache 上运行良好。但是,我在动态路由方面遇到问题(例如:posts/[id]),对于这些情况,它返回块错误。
RewriteEngine On
DirectoryIndex disabled
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://127.0.0.1:4001/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:4001/$1 [P,L]
即使您为此使用 mod_rewrite,您仍然应该包含 ProxyPassReverse 指令。
来自 Apache 文档:
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
ProxyPassReverse "/" "http://old.example.com/"
讨论:在每种情况下,我们都添加一个 ProxyPassReverse 指令 确保后端发出的任何重定向都正确传递 交给客户。
尽可能考虑使用 ProxyPass 或 ProxyPassMatch 优先选择 mod_rewrite。