Mod rewrite Heroku PHP cedar stack:我可以重写URL吗?

Mod rewrite Heroku PHP cedar stack:我可以重写URL吗?,mod-rewrite,heroku,cedar,Mod Rewrite,Heroku,Cedar,我正在Heroku cedar堆栈上运行一个PHP应用程序。有没有办法设置URL重写规则?我曾希望在.htaccess文件中执行此操作,但在此文件中只识别访问控制指令 我知道Ruby的建议是使用rake rewrite,但是在Heroku上使用URL rewrite配置的PHP应用程序需要做什么呢?你可以在Heroku上使用普通的.htaccess文件和PHP。只需创建一个具有重写条件的.htaccess文件,如下所示: <IfModule mod_rewrite.c> Rewri

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


我知道Ruby的建议是使用rake rewrite,但是在Heroku上使用URL rewrite配置的PHP应用程序需要做什么呢?

你可以在Heroku上使用普通的
.htaccess
文件和PHP。只需创建一个具有重写条件的
.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>

重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]

这个例子摘自WordPress。我相信所有的URL现在都重定向到
/index.php
。这里的示例:这里的应用程序:

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

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

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

在heroku上哪里不能使用URL重写?我在互联网上找到的所有关于在heroku上运行PHP的文档都可以使用URL重写。例如,我在这方面做了大量的尝试和错误,结果证明我认为URL重写不起作用的原因是我的Mac和heroku对.htaccess文件的解释不同。关于字符串替换的正则表达式的解释方式有所不同,尽管我一直无法确切地弄清楚是什么或为什么。现在,我在.htaccess文件中维护一个heroku和一个Mac部分来解决这个问题,并不再尝试正确地解决它。