2013-05-03 4 views
0

대부분은 리디렉션 및 파일 확장명 제거 또는 동적 URL 용입니다..htaccess 파일을 사용하여 URL 이름 바꾸기

문제 나는 현재 내가 원하는 무엇 'mysite.co.uk/fileThathasalongname.html'

사용 'mysite.co.uk/file/' while file = file.html

입니다 무엇을 가지고

Options +FollowSymlinks 
RewriteEngine On 
RewriteRule ^fileThathasalongname file.html 

의 이름을 변경하는 간단한 정적 URL을 얻을 수없는 것 :

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteRule ^FileIWantToChange.html FriendlyNamed.html 

이것을 사용하면 오류가 여러 번 발생합니다. 선택

+++++++++++++++++ 편집 +++++++++++++++++++++++++

난 사람들은 도움이 될 수 보는 내 최종 버전을 추가 할 것입니다 생각, 아래의 anwser가 정확한지 .

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] 

RewriteRule ^FriendlyNamed.html FileIWantToChange.html [L] 

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

RewriteCond %{HTTP_HOST} ^www.mysire.co.uk [NC] 
RewriteRule ^(.*)$ http://mysite.co.uk/$1 [L,R=301] 

모든 작품이 매력적입니다.

답변

2

나는 여러 문제가 일어나고 참조하십시오. 먼저 정규식이 사용자가 입력 한 친숙한 URL과 일치합니다. 따라서 친숙한 URL과 파일 경로를 서로 바꿔야합니다. 친숙한 또는 "가짜"이름이 왼쪽으로 이동하는 동안 자동으로 리디렉션되는 URL은 오른쪽으로 이동합니다. 또한 디렉토리 기반을 /으로 설정했는지 확인하십시오. 마지막으로 [L]을 추가하여 동일한 파일의 내용으로 인해 경로를 다시 작성하려고 할 경우 마지막 규칙으로 적용하는 것이 좋습니다. 파일 위치에 따라 다른 htaccess 파일은 아래쪽으로 내려 가게되므로 규칙을 적용 할 때 마지막 규칙이 적용될 때에도 확인됩니다. 또한 옵션 부분을 완전히 폐기하십시오. 이것을 시도해보십시오 :

RewriteBase/
RewriteEngine On 
RewriteRule ^FriendlyNamed.html FileIWantToChange.html [L] 
+0

답장을 보내 주셔서 감사합니다. 매력처럼 작동했습니다. 1and1 호스팅에 사용할 수있는 옵션 + 멀티보기를 추가했습니다. 그것을 확장 해 주셔서 감사합니다. 그곳에서 나에게 많은 것을 설명해 주셨습니다.) – Switchfire

0

한다 RewriteRule^fileThathasalongname.html의 file.html과는

+0

안녕하세요, Parnas, 이전에 같은 오류가 발생했습니다. 다중 선택이 잘못되었습니다. – Switchfire