2016-06-11 7 views
1
나는 그것이 URL을 만들 수있는 미니 블로그를 만드는 중이라서

은 다음과 같습니다PHP - htaccess로 가짜 디렉토리

From: http://127.0.0.1/index.php?post=the-story-of-us 
To: http://127.0.0.1/view/the-story-of-us 

내가 이것을 시도했지만 내가 404 not found.

RewriteEngine on 

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /index\.php\?post=([^&]+) 
RewriteRule^/view/%2/? [L,R=301] 

답변

0

내가 받고 있어요 RewriteRule은 다음과 같아야합니다.

RewriteEngine on 
RewriteBase/

RewriteRule ^view/(.*)/? ./index.php?post=$1 [L,R=301] 
+0

처럼 보이게하는 방법입니다. 수동으로 URL을 입력 한 경우 철자를 확인하고 다시 시도하십시오. – Jacob

+0

@Jacob 제 답변을 업데이트했습니다. (특히 처음부터 제거됨 /보기) – Petr

0

현재 규칙 만 h 앤드류 케이스 : 리디렉션올드 URL to new url.
(그건 그렇고, 리디렉션 루프를 방지하기 위해 THE_REQUEST를 사용 +1) 또한 사건을 처리해야

는 : 새로운 URL에 이전 URL (내부적으로) 다시 작성 . 요청 된 URL이 서버에서 찾을 수 없습니다 : 여기
은 htaccess로 나는 여전히이 무엇입니까

RewriteEngine On 

# Redirect /index.php?post=XXX to /view/XXX 
RewriteCond %{THE_REQUEST} \s/index\.php\?post=([^&\s]+)\s [NC] 
RewriteRule^/view/%1? [L,R=301] 

# Internally rewrite back /view/XXX to /index.php?post=XXX 
RewriteRule ^view/([^/]+)$ /index.php?post=$1 [L] 
관련 문제