如何让 mod_rewrite 在 Heroku 上工作?

Posted

技术标签:

【中文标题】如何让 mod_rewrite 在 Heroku 上工作?【英文标题】:How do I get mod_rewrite working on Heroku? 【发布时间】:2013-09-15 09:15:26 【问题描述】:

我正在尝试使用以下规则重写 URL:

RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

这是我创建的 .htaccess 文件:

 RewriteEngine On
 RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

但是当我将它推送到我的 Heroku 服务器时,我在所有页面上都收到 500 Internal Server Error。我做错了什么?

谢谢

【问题讨论】:

听起来你可能没有在服务器上加载 mod_rewrite 感谢回复,如何在服务器上加载mod_rewrite? ***.com/questions/10144634/… 【参考方案1】:

我认为主要问题是你重写规则

尝试类似:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^([^/]+) index.php?id=$1 [L]
</IfModule>

【讨论】:

【参考方案2】:

如果您加载了 mod_rewrite,并且您的规则位于文档根目录的 htaccess 文件中。您拥有的规则正在导致无限循环。您需要添加一个或两个条件来防止这种情况发生:

RewriteEngine On
RewriteCond %REQUEST_URI !^/curation\.php
RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

或者

RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

【讨论】:

以上是关于如何让 mod_rewrite 在 Heroku 上工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何让我在 Heroku 上的 Laravel 项目使用 Heroku Postgres?

如何让 South 在 Heroku 中为 Django 应用程序工作

如何忽略 mod_rewrite 中的目录?

如何使用 mod_rewrite 显示 SEO 友好的 URL?

在 Heroku 上运行 Django/React 应用程序时,如何让 collectstatic 工作?

如何让 heroku 使用 DB 的环境配置