2010-11-19 5 views
0

저는 testsite라는 디렉토리에서 작업 중이며 모든 .php 확장자를 후행 슬래시로 대체하려고합니다. 나는 그 중반에 있는데, 예를 들어 http://mydomain.com/testsite/about을 입력하면 http://mydomain.com/testsite/about.php이로드됨을 의미합니다.Apache를 사용하여 URL에 후행 슬래시 추가

그러나 이제 URL을 ./about/으로 표시하여 한 버전 만 검색 엔진 순위에 표시되도록하고 싶습니다. 이 보존 (디스플레이에서 나는 통과 매개 변수를 숨기기) 할 수 있으며, 또한

RewriteEngine On 
RewriteBase /testsite/ 
RewriteRule ^()$ index.php [NC,L] 
RewriteCond %{REQUEST_URI} !(^/?.*\..*$) [NC] 
RewriteRule (.*)$ $1.php [NC] 

:

여기 내 htaccess로입니까?

모든 도움을 많이 받으실 수 있습니다! 와 마지막 규칙을 교체

답변

1

이 규칙을 시도해보십시오

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301] 
RewriteRule ^$ index.php [L] 
RewriteRule (.*)/$ $1.php [NC] 
+0

안녕하세요 검보. 고마워. 나는 이것을 시도했지만 URL 끝에 ./about (./about%25)을주고 % 25를 추가하는 것으로 보이며 ./about%25%25%25의 루프에서 길을 잃는다. ./about/을 주소 표시 줄에 넣을 때. 나는 그것이 거의 없다고 생각하지만 꽤 아니다. – user114671

+0

@Outerbridge Mike : 죄송합니다. 잘못된 문자입니다. – Gumbo

+0

안녕 검보. 도와 줘서 고맙다. 점점 가까워지고있어. 내가 ./about에 가면 ./about/을 URL로 넣지 만 CSS를로드하지 않고 페이지가 표시됩니다. 그런 다음 링크를 클릭하면 ./contact-us/라고 말합니다. ./about/contact-us.php.php.php.php.php !!! 거의 시간이 다가 오면 오늘 나중에 보도록하겠습니다. 다시 한번 감사드립니다. – user114671

0

시도 :

RewriteRule (.*)$ $1.php [NC] [E=ORIGINAL_URL:$1] 
+0

안녕 데이비드. 불행히도 이전과 같은 결과를 얻고 있습니다. E = 파트는 무엇을합니까? 감사합니다 마이크 – user114671

+0

E 또는 env는 환경 변수입니다. 자세한 내용은 http://httpd.apache.org/docs/2.2/env.html을 확인하십시오. 위의 예에서 재 작성이 이루어 지더라도 원본 URL은 보존됩니다. –

관련 문제