4

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

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

4

2 回答 2

7

您可以.htaccess在 Heroku 上将普通文件与 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>

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

于 2013-06-04T15:08:55.213 回答
0

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

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

这更像是一种解决方法而不是解决方案。我相信 apache 版本是不同的,但最后我只是投降了进一步调试,并使用了一个 .htaccess 文件,其中包含我注释/取消注释的两个部分。

于 2013-06-04T20:20:23.163 回答