2013-02-23 3 views
4

Я запускаю PHP-приложение в стек кедра Heroku. Есть ли способ настроить правила перезаписи URL? Я надеялся сделать это в файлах .htaccess, но в этом признаются только директивы управления доступом.Heroku PHP кедровый стек: могу ли я переписывать URL?

Я вижу, что рекомендация Ruby заключается в использовании перезаписи rake, но что должно произойти для PHP-приложения, у вас есть настройка перезаписи URL на Heroku?

+0

Как вы видите, вы не можете использовать переписывание URL-адресов на герою? Вся документация, которую я нашел в Интернете о PHP, работающем на heroku, позволяет переписывать URL-адреса. Например, http://bitbetter.se/2011/11/11/wordpress-on-heroku/ –

+1

Я сделал тонну проб и ошибок вокруг этого, и выясняется, почему я думал, что переписывание URL не работает, потому что интерпретация файлов .htaccess отличалась от моего Mac и heroku. Что-то, с чем интерпретируется регулярное выражение для замены строк, отличается, хотя я никогда не мог точно понять, что и почему. Теперь я поддерживаю герою и часть Mac в моих файлах .htaccess, чтобы обойти ее и перешел от попытки правильно ее решить. –

ответ

7

Вы можете использовать обычный файл .htaccess с PHP на Heroku. Просто создайте .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

0

Так, чтобы частично ответить на мой собственный вопрос и продолжать то, что я упомянул в комментариях, здесь разница между Mac и файл .htaccess Heroku, что мне нужно сделать:

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

Это решение может быть более сложным, чем решение проблемы. Я считаю, что версии Apache отличаются друг от друга, но в конце концов я просто капитулировал, отлаживая это дальше и использую файл .htaccess с двумя разделами в нем, которые я комментирую/раскомментирую.

 Смежные вопросы

  • Нет связанных вопросов^_^