2016-08-08 4 views
0

멀티 사이트 Magento 웹 사이트에 대한 사이트 맵을 만들려고합니다. 각 상점보기에는 자체 사이트 맵이 있습니다. 그러므로 나는htaccess에서 다시 쓰기 조건

사이트 맵/store_en/sitemap.xml의

사이트 맵/store_de/sitemap.xml의

사이트 맵/store_nl/sitemap.xml의

내가 달성하기 위해 노력하고있어이다 만들었다 mydomain.nl/sitemap.xml의 요청에 따라 mydomain.nl/sitemap/store_nl/sitemap.xml로 리디렉션합니다.

이것은 내 htaccess 파일에 넣었습니다. 그러나 이것은 효과가 없습니다. 누구든지 내가 뭘 잘못하고 있는지 알 수 있니?

##rewrite rule for de sitemaps 

RewriteCond %{HTTP_HOST} ^.*mydomain.nl$ 
RewriteRule ^sitemap.xml$ /sitemap/store_nl/sitemap.xml [NC] 

다른 다시 쓰기 규칙이 있습니다. 어떤 영향을 주는지 나는 모른다. ...

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteCond %{REQUEST_URI} !(.*)\.(html|shtml|php)$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301] 

미리 감사드립니다!

+0

언뜻보기에는 규칙이 잘 보입니다. 당신은'.htaccess' 스타일 파일에 대한 shure 해석이 가능하고 파일이 정확하게 위치해 있는가? 다음 단계는 로그 다시 쓰기를 활성화하고 다시 쓰기 엔진 내부의 자세한 단계를 확인하는 것입니다. 이것은 보통 잘못된 것을 지적합니다. – arkascha

+0

도움을 주셔서 감사합니다. 다른 (마지막) 다시 쓰기 규칙이 정상적으로 작동하므로 파일이 작동하고 있습니다. 다시 쓰기 로깅을 활성화하려면 어떻게합니까? 나는 이것에 익숙하지 않다 ... –

+0

그런 질문에 대해서는 처음에는 공식 문서에 나와 있어야한다. 사용하는 도구 및 유틸리티의 문서를 참고하지 않고 코드를 작성할 수는 없습니다! http://httpd.apache.org/docs/current/mod/mod_rewrite.html – arkascha

답변

0

mod_rewrite에 대한 지시문을 위에서 아래로 읽고 처리합니다. 귀하의 경우에는 상단에 리디렉션이 있습니다. 이 규칙은 일치합니다 (sitemap.xml은 파일 또는 디렉토리가 아니며 슬래시, html, shtml 또는 php로 끝나지 않습니다). 추가 슬래시를 추가하고 요청을 재 지정하십시오.

/sitemap.xml/에 대한 새로운 요청이 접수되었습니다. 첫 번째 규칙이 일치하지 않고 (슬래시로 끝남) 두 번째 규칙이 일치하지 않습니다 (요청이 xml으로 끝나지 않고 xml/으로 끝남). 404 오류를 제공합니다.

규칙을 전환 할 때 url (/sitemap.xml)이 첫 번째 규칙과 일치하여 일치합니다. 이제 다시 작성되었습니다. 두 번째 패스에서는 첫 번째 규칙이 일치하지 않고 두 번째 규칙이 일치하지 않습니다 (유효한 파일).

+0

명확한 설명에 대해 감사드립니다. :-) –

관련 문제