2011-01-20 7 views
2

퍼멀 링크가 켜져있는 WordPress 사이트와 병렬로 구축중인 응용 프로그램에서 작업하고 있습니다. 그래서, 나중에 htaccess에서 wordpress의 포괄적 인 측면을 처리하는 다른 재 작성이 있습니다. 그러나, 나는 그것들에 도달하기 전에 나의 자신의 재기록 중 일부를 수행하려고 시도하고있다. - 그리고 내 뒤에 [L]을 사용하는 것. 슬래시 또는 슬래시를 허용하는 옵션을 마지막에 추가하려고 시도하기 전까지는 모든 것이 완벽하게 작동합니다 (여전히 일치하는 항목이 있음).RewriteRule 선택적 후행 슬래시 문제

다음은이 서버에서 500 오류가 발생 무엇의 예 :

RewriteRule ^app/([^/]+)/?$ /app/$1\.php [L,QSA] 

http://<domain>.com/app/login 
or 
http://<domain>.com/app/login/ 

하지만 다음 작품 잘, 그리고 htaccess로의 이전 위의 예이다.

RewriteRule ^app/p/([^/]+)/?$ /app/page.php?page_slug=$1 [L,QSA] 

http://<domain>.com/app/p/styles 
or 
http://<domain>.com/app/p/styles/ 

나는 거의/전혀 성공하지 못한 변형을 시도했습니다. 대상 위치 /app/$1.php가 완벽하게 원본 위치 ^app/([^/]+)/?$에 일치하기 때문에

RewriteRule ^app/([^/]+)/{0,1}$ /app/$1\.php [L,QSA] 
and 
RewriteRule ^app/([^/]+)[p]/[\p]?$ /app/$1\.php [L,QSA] 

답변

2

이입니다. 그래서 페이지 자체로 리다이렉트됩니다.

RewriteCond %{REQUEST_URI} !\.php 
RewriteRule ^app/([^/]+)/?$ /app/$1.php [L,QSA] 
+0

알아 들었어! 따라서이 경우 소스를 대상과 다르게하려면 끝에 슬래시가 필요합니다. 그리고이 주변의 유일한 방법은 다른 소스 이름을 선택하는 것일 것입니다 ... 목표는 바꿀 수 없으므로. – tdurham

+0

내 앞의 예와 같이 RewriteCond를 규칙 앞에 추가하기 만하면됩니다. – akond

관련 문제