리디렉션 htaccess로 :아파치 내가 htaccess로 파일에이 규칙을 작성한 파일
# Rewrite super sized ciim5 images to large
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ciim5/([0-9]+)/([0-9]+)/super_000000\.jpg$ /ciim5/$1/$2/large_000000.jpg [NC,L,R=301]
무엇을해야하는 경로 /ciim5/123/456/super_000000.jpg
이 요청 될 때, 그것은 (301)가 동일한 경로로 리디렉션하지만 large_000000.jpg
를 제공한다입니다 대신. 두 super_0000000.jpg
및 large_000000.jpg
내가 내 로컬 호스트에서이 규칙을 시도했습니다
(효과적으로 우리가 공중에서 슈퍼 크기의 이미지를 숨기고 대규모로 리디렉션 할) 해당 서버의 실제 물리적 파일입니다 (아파치/2.4.7 (우분투)) 그리고 작동했습니다. (나머지 .htaccess 파일은 프로덕션과 동일합니다.) 하지만 프로덕션 서버 (Apache/2.4.18 (Ubuntu))에 업로드하면 아무 것도하지 않습니다. 그러나 이전에 기존의 다시 쓰기가 작동합니다 (= mod_rewrite가 사용 가능합니다). .htaccess 파일이 프로덕션 사이트에서 업데이트되었는지 확인하고 test.html 파일을 만들어 브라우저에서 열어 올바른 디렉토리에 파일을 업로드하고 있는지 확인했습니다.
지금 내 머리를 긁적 인 채 앉아 있는데, 누군가가 프로덕션 서버에서 작동하지 않는 이유와 리디렉션을 수행하는 방법을 말해 줄 수 있습니까?
편집 : 경로 /ciim5
은 실제로 웹 루트에없는 디렉토리의 별칭으로 설정됩니다. 그래서 이것은 웹 루트의 .htaccess 파일이 읽히지 않을 수 있습니까? .htaccess 파일을/ciim5 디렉토리에 넣어야합니까?
편집 2 :
[Thu Dec 01 10:05:48.444800 2016] [rewrite:trace1] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] pass through /ciim5/295/491/super_000000.jpg
[Thu Dec 01 10:05:48.445015 2016] [rewrite:trace3] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] strip per-dir prefix: /static-media/295/491/super_000000.jpg -> 295/491/super_000000.jpg
[Thu Dec 01 10:05:48.445113 2016] [rewrite:trace3] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] applying pattern '^(ciim5/[0-9]+/[0-9]+/)super_000000\\.jpg$' to uri '295/491/super_000000.jpg'
[Thu Dec 01 10:05:48.445204 2016] [rewrite:trace1] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] pass through /static-media/295/491/super_000000.jpg
새로운 기능이 "스트립 당 디렉토리 접두사"일 : 사용 기록이 보여? ciim5 또는 static-media (ciim5가 앨리어싱 된 실제 폴더)를 제거하는 것처럼 보입니다. 그래서 나는 실제로 내 재 작성에서 ciim5
부분을 제거해야합니까?
내 웹 루트가 /var/www/*.org.uk
에 있습니다
다시 쓰기 모듈 ([LogLevel] (https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging))의 디버그 로그를 확인하십시오. 두 서버에서. 차이점이 있습니까? –
@DavidDuponchel 확인 ** 수정 2 **, 감사합니다! – Beebee