2009-08-06 9 views
1

내 사이트의 경우 URL http://www.mysite.com/work을 work.php 파일로 가리키는 RewriteRule이 있습니다. 또한 project1.php, project2.php 등의 파일이 들어있는 "work"라는 디렉토리가 있습니다..htaccess URL을 페이지 또는 디렉토리로 다시 작성

URL을 작성해야만 URL http://www.mysite.com/work이 작업에 들어갈 수 있습니다. .php 파일이지만, URL http://www.mysite.com/work/project1은 "work"디렉토리에 들어가서 project1.php 파일을 표시한다는 것을 알고 있습니까?

편집 :이 보안이 많다는을 개선하기 위해

RewriteEngine On 
RewriteBase /beta/ 
RewriteRule ^([a-z]+)$ $1.php [L] 

모든 추가 팁 : 지적해야이 내가 현재 함께 일하고 있어요 무엇인가?

답변

4

이 시도 (... 등, 디렉토리 점프 중지) : 그 http://www.mysite.com/work (후행 슬래시)를 보장하지 않습니다

RewriteEngin On 
RewriteBase/
RewriteRule ^work$ /work.php [QSA,L] 

work.php 파일로 이동합니다.

http://www.mysite.com/work/ (후행 슬래시 포함)을 work.php으로 지정하려면이 행을 마지막으로 RewriteRule 위에 추가하십시오. 후행와 URL로 리디렉션됩니다

RewriteRule ^work/$ /work [R=301,QSA,L] 

work.php 파일을 표시하여 슬래시.

UPDATE : 이미 RewriteBase 지침을 가지고 있기 때문에이, 바로 당신이 포괄을 사용하고있는 모든 것을 일치됩니다 RewriteBase 후하지만 규칙 같은 RewriteRule 전에 RewriteRule 라인 (들)을 넣어.

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php [L] 
+0

. 아마 내가 현재 무엇을 함께 할 수있는 뭔가? – roflwaffle

+0

@Brandon, 귀하의 개정판에 맞는 답변을 업데이트했습니다. – matpie

-1

는이 규칙을보십시오. 그것은 나를 위해 작동합니다.

RewriteEngine On 
RewriteBase/
RewriteRule ^([a-z]+)$ $1.php [L] 

간단히 제거 beta/ 당신은 내가 내 현재의 .htaccess 파일을 포함하기 전에, 난 그냥 당신의 물건을 추가 할 경우 작동하지 않는 대답

+0

무엇이 문제입니까? – Gumbo

+0

나는 다운 - 투표 한 사람이 아니지만, 당신의 규칙이 너무 공격적이며 OP가 원했던 '/ work'뿐만 아니라 존재하는 모든 파일과 일치 할 것이라는 이유를 추측 할 수 있습니다. – matpie

0

이 질문에 대한 대답은 :

관련 문제