2012-02-13 5 views
4

최근 URL이 파일 확장명을 표시하지 않도록 htaccess를 사용하여 웹 사이트 URL을 변경했습니다. 이제 내 문제는 내 URL을 확장 할 수 있도록 새 XML 사이트 맵을 만들었습니다 !!! Google 웹 마스터 도구가 중복되는 콘텐츠 문제에 대해 알려줍니다. 즉. 페이지 및 page.html 같은 제목을 .... 그래서 내 질문에 확장명을 가진 URL을 파일 확장명 html로 URL을 리디렉션 할 수 있습니다 !!! 이 (확장자가없는 파일을 확장명이없는 파일로 리디렉션

http://www.shenazhpeyk.co.uk/coding-machines.html

내가 그래서 구글 웹 마스터 도구를 사용하여 문제를 해결한다 리디렉션

http://www.shenazhpeyk.co.uk/coding-machines

로 변경하려면 확장자가 html 내 웹 사이트 URL의 예를하십시오이다 나에게 htaccess 파일에 사용할 코드를 제공하십시오)

많은 감사합니다

+0

참조 http://stackoverflow.com/questions/9250356/how-to-redirect-file-php-to-file-but-make-file-point-to-file-php/9250387 – Gerben

답변

0

.html 확장자가있는 사이트 리디렉션 URL의 .htaccess 파일에 다음을 추가하고 제거하십시오.

RewriteEngine on 
RewriteBase/

#redirect to remove the .html extension 
RewriteRule ^(.+)\.html$ $1 [L,NC,R=301] 
+0

답장을 보내 주셔서 감사합니다. 하지만 다음과 같은 오류가 발생합니다 : 페이지가 올바르게 리디렉션되지 않습니다. 이것은 이전에 가지고있는 것이므로 작동하지만 확장명이없는 HTML 페이지로 리디렉션하지 않습니다. RewriteEngine On RewriteCond % {REQUEST_FILENAME}! -f RewriteRule^([^ \.] +) $ 1.html [NC, L] –

+0

예! 해결책을 찾았습니다! –

+2

다른 사람이 같은 문제가있는 경우에 대비하여 해결책을 찾았습니다! 롤! 옵션 + FollowSymLinks를 -MultiViews 부터 DirectorySlash 한다 RewriteCond % {SCRIPT_FILENAME}의 한다 RewriteEngine 오프/ 한다 RewriteCond %가 {SCRIPT_FILENAME가} .html 파일 -d! -f 한다 RewriteRule의 [^ /] $ %의 {REQUEST_URI}/[R = 301 , L] 한다 RewriteCond % (. +). {ENV REDIRECT_STATUS}^$ 한다 RewriteRule^\ HTML $/$ 1 R = 301, L] 한다 RewriteCond % {SCRIPT_FILENAME} .html 중에서 -f RewriteRule의 [^/] $ % {REQUEST_URI} .html [QSA, L] 참고 : 맞는지 확실하지 않지만 작동합니다. –

1

이 시도 :

Options +FollowSymLinks -MultiViews 
DirectorySlash Off 

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME}/ -d 
RewriteCond %{SCRIPT_FILENAME}.html !-f 
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L] 

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteRule ^(.+)\.html$ /$1 [R=301,L] 

RewriteCond %{SCRIPT_FILENAME}.html -f 
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L] 
1

뿐만 아니라이 코드를 발견. 동일한 일을 성취 할 것인지 확실치 않습니다. 위의 경우처럼 나를 위해 일하는 것 같습니다 (PHP 용).

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ /$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ /$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 

후행 슬래시와 그 부분이 없거나 생략되어야하는지 궁금합니다.

+0

나는 파티에 늦었지만 제발 할 수는 있는지 알고 있습니다. 파일 확장자가없는 페이지로 다시 리디렉션 한 방법은 무엇입니까? 나는 당신의 코드를 정말 좋아하고 지금 그것을 사용하고 있습니다. –

관련 문제