2013-08-26 1 views
1

나는 cors와 함께 정규 표현식을 사용하려고합니다. 나는 cors가 모두 (*) 또는 정확한 도메인이라는 것이 불가능하다는 것을 여러 번 읽었습니다. Access-Control-Allow-Origin wildcard subdomains, ports and protocols. 그러나 이것은 모순되는 것 같습니다 : http://www.cameronstokes.com/2010/12/26/cross-origin-resource-sharing-and-apache-httpd/. 누군가가 명확히 해줄 수 있었고, 정규 표현식을 사용할 수 있다면 위의 링크를 구현하려했지만 성공하지 못했기 때문에 간단한 예제를 제공 할 수 있습니까?CORS에서 정규 표현식 사용

정규 표현식을 사용하려면이

^http\://\blocal-.*\b\.testing-test:10005$ 

내 정규식을 확인하고는 생성 된 URL과 일치입니다. (이 맞습니까?) 내 apache2.conf의에 제안 내가 next.It 사전에 감사를 작동하지 않습니다 무엇을해야하는지에 관해서는 분실하고

SetEnvIf Origin "^http\://\blocal-.*\b\.mycompany-it:10005$" 

    AccessControlAllowOrigin=$0 Header add Access-Control-Allow-Origin % 

    {AccessControlAllowOrigin}e env=AccessControlAllowOrigin 

을 다음과 같이 나는한다 SetEnvIf와 헤더 라인을 설정 추가

+0

Access-Control-Allow-Origin에는 regexp를 포함 할 수 없습니다. 이 모든 것은 당신이 연결된 질문에서 다루어집니다. 링크 된 기사에 설명 된대로 Access-Control-Allow-Origin 헤더를 프로그래밍 방식으로 생성하는 고유 한 코드를 작성할 수 있습니다. 이를 구현하는 데 도움이 필요하면 기사에서 설명한 논리를 구현하기 위해 시도한 몇 가지 시도와 실패한 이유 및 방법을 보여줍니다. –

답변

-1

액세스 제어 허용 원본 헤더는 와일드 카드 '*'또는 정확한 URL 일 수 있습니다. 이를 수행하는 한 가지 방법은 먼저 요청에서 Origin 헤더의 값을 가져 오는 것입니다 (이는 서버마다 다르지만 하나의 샘플은 다음과 같을 수 있습니다 : request.headers['Origin']).

그런 다음 요청 Origin의 값으로 정규식 검사를 수행하십시오. 요청의 원점이 허용 된 정규 표현식으로 검사를 통과하면 Access-Control-Allow-Origin의 값을 요청의 원점 (샘플 : response.headers['Access-Control-Allow-Origin'] = request.headers['Origin'])의 값으로 간단히 설정할 수 있습니다. 이렇게하면 액세스 제어의 규칙을 엄격한 URL로 위반하는 것이 아니라 서버가 여러 가지 다른 허용 된 출처를 허용 할 수 있습니다.

+0

NodeJS에 ExpressJS 용 JavaScript를 작성한 것 같습니다. 질문은 아파치 설정 지시어에 대한 질문이다. – Quentin