Heroku PHP雪松堆栈:我可以做URL重写



我正在Heroku雪松堆栈上运行一个PHP应用程序。有没有办法设置URL重写规则?我曾希望在.htaccess文件中执行此操作,但在此文件中只能识别访问控制指令。

我看到Ruby的建议是使用rake重写,但对于一个在Heroku上有URL重写配置的PHP应用程序,需要做什么?

您可以在Heroku上使用带有PHP的普通.htaccess文件。只需创建一个具有重写条件的.htaccess文件,类似于以下内容:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^index.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
</IfModule>

这个例子来自WordPress。我相信现在所有的url都重定向到了/index.php。此处的示例:https://github.com/catsby/php-heroku-htaccess和应用程序:http://php-heroku-htaccess.herokuapp.com/something

因此,为了部分回答我自己的问题并继续我在评论中提到的内容,以下是Mac和我需要制作的heroku.htaccess文件之间的区别:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ $1/$2?arg=$3 #Mac
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ $1/$2.php?arg=$3 #heroku

这与其说是一个解决方案,不如说是一种变通方法。我相信apache的版本是不同的,但最终我还是放弃了对它的进一步调试,并使用了一个.htaccess文件,其中有两个部分我可以注释/取消注释。

相关内容

最新更新