문제

내가 원하는 것 :

301로 /file_new.pdf로 리디렉션 /File New.pdf (파일과 신규 사이의 공간)

나는 그것을 알고있다 :

  • 이 스레드의 솔루션을 사용하여 mod_rewrite를 사용하는 rewriterule 301에 의존 할 수 있습니다. @ URL에 공간이있는 mod_rewrite
  • 파일 이름을 바꾸어 공간을 포함하지 않고 대시/밑줄로 바꿀 수 있습니다.

그러나 나는 개인적으로 이것을 어떻게 할 것인지 궁금합니다. 지금까지 내가 가지고있는 것은 다음과 같습니다.

Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf

conf 파일 파서는 configtest를 호출 할 때 오류가 발생합니다.

리디렉션은 2 ~ 3 개의 인수, 선택적 상태를 취한 다음 리디렉션하고 대상 URL을 문서화합니다.

편집하다: 분명히 Mod_rewrite 또는 Redirect 301 방법은 나에게 작동하고 있습니다. 아마도 파일이 실제로 해당 위치에 존재하기 때문에 적용하지 않는 이유가 있기 때문에 아마도 아마도 그들이 적용하지 않기 때문일 수 있습니다.

<VirtualHost *:80>
DocumentRoot /www/sitename_com
ServerName site.local
Options -MultiViews

RewriteEngine on
Redirect 301 /pdf/file_new.pdf http://site.local/pdf/file%20new.pdf
RewriteRule ^/pdf/file_new.pdf http://site.local/pdf/file\ new.pdf
RewriteLog "/www/rewrite.log"
</VirtualHost>

rewrite.log에서는 각각의 URI / HTTP 요청에 패턴을 일치 시키려고합니다. MOD_ALIAS / MOD_REWRITE에 도달하기 전에 무언가가 제어되고 있다고 생각합니다.

요약하면 브라우저의 file_new.pdf로 직접 이동하고 301이 아닙니다. alias 그리고 rewrite 활성화되었습니다. 내 아파치 버전은 2.2입니다.

도움이 되었습니까?

해결책

그만큼 Redirect 실제로 mod_rewrite가 아닌 mod_alias의 일부입니다. %20이 작동하게되어 기쁩니다. 또한 인용문을 사용하여 Apache에게 공간이 포함 된 경로가 두 개의 개별 항목이 아닌 URL이라고 말할 수 있습니다.

Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top