2013-02-23 8 views
4

나는 Heroku 삼나무 스택에 PHP 응용 프로그램을 실행 중입니다. URL 다시 쓰기 규칙을 설정하는 방법이 있습니까? .htaccess 파일에서이 작업을 수행하기를 원했지만 액세스 제어 지시문 만이 이에 인식됩니다.Heroku PHP cedar 스택 : URL 재 작성을 할 수 있습니까?

루비 조언은 레이크 재 작성을 사용하는 것이지만 PHP 응용 프로그램에서 일어날 필요가있는 것은 Heroku에서 URL 재 작성 구성이 있습니까?

+0

어디에서 heroku에 URL 재 작성을 사용할 수 없다는 것을 알 수 있습니까? heroku에서 실행되는 PHP에 관한 인터넷의 모든 문서에서 URL 재 작성을 사용할 수 있습니다. 예 : http://bitbetter.se/2011/11/11/wordpress-on-heroku/ –

+1

나는 이것에 대해 많은 시행 착오를했는데 URL 재 작성이 작동하지 않는다고 생각한 이유가 밝혀졌습니다. 내 Mac과 heroku간에 .htaccess 파일의 해석이 다릅니다. 문자열 교체에 대한 정규 표현식을 해석하는 방법은 다르지만, 정확히 또는 무엇을 알아낼 수 없었습니다. 나는 이제 heroku와 Mac 부분을 .htaccess 파일에서 유지 관리하여 올바르게 해결하려고 노력했다. –

답변

7

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> 

이 예 : 간단히과 유사한 다시 쓰기 조건과 .htaccess 파일을 만듭니다. 모든 URL이 /index.php으로 리디렉션됩니다. 여기 https://github.com/catsby/php-heroku-htaccess 및 응용 프로그램 : 여기 예 http://php-heroku-htaccess.herokuapp.com/something

0

그래서 부분적으로 내 자신의 질문에 대답 내가 코멘트에 언급 것을 계속 여기에 맥 내가 만드는 데 필요한 Heroku가 htaccess로 파일의 차이는 다음과 같습니다

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

이것은 해결책보다 더 많은 해결 방법입니다. 나는 아파치 버전이 다르다고 믿지만, 결국에는 디버깅을 더 해보고 주석이없는 주석 부분을 가진 .htaccess 파일을 사용했다.

관련 문제