2013-02-06 1 views
1

URL에서 앰퍼샌드 기호를 사용하는 방법을 알아 내려고하고 있습니다.& 앰퍼샌드 URL에

여기를 보니 : http://www.indeed.co.uk/B&Q-jobs 나는 비슷한 것을하고 싶다.

URL에 액세스 할 때 서버가 호출 할 내용을 정확히 알 수 없습니다.

이와 같은 요청을 .htaccess와 함께 가져 와서 특정 파일에 다시 쓰는 방법이 있습니까?

도움 주셔서 감사합니다.

+0

지금까지 해보신 것은 무엇입니까? [URL에서 허용되는 문자] (http://stackoverflow.com/q/1856785/1779906)를 보았습니까? – Perleone

답변

1

URI는 과 같이 인코딩 된 /B&Q-jobs과 같은 URI로 전송됩니다.

Rewrite ^/?B&Q-jobs$ /a/specific/file.html [L] 

이 사람이 /B&Q-jobs를 요청할 때 그렇게, 그들은 실제로 컨텐츠를 제공받을 수 있습니다 :이 재 작성 엔진을 통해 보내지는 경우 그러나 URI는 이미 당신이 실제로 & 문자에 일치시킬 수 있도록 디코딩 된 /a/specific/file.html에 있습니다.

2

앰퍼샌드는 일반적으로 쿼리 문자열에 사용됩니다. 쿼리 문자열은 쿼리 문자열은 일반적으로 다음과 같이 보일 등의 정보를 추적, 페이지 콘텐츠를 렌더링하는 데 사용하는 URL의 끝에 하나 개 이상의 변수 :

http://www.website.com/index.php?variable=1&variable=2 

공지 사항을 어떻게 URL의 첫 번째 특수 문자 파일 확장자는 ?입니다. 쿼리 문자열의 시작을 지정합니다.

예제에서는 ?이 없으므로 쿼리 문자열이 시작되지 않습니다. RFC 1738에 따르면 앰퍼샌드는 지정된 목적 (쿼리 문자열의 변수를 함께 연결)을 제외하고 유효한 URL 문자가 아니므로 제공 한 링크가 기술적으로 유효하지 않습니다.

그 무효 가능성은 어떤 일이 벌어 지는지, 재작 성입니다. 다시 쓰기는 패턴 또는 일치를 기반으로 특정 파일을 표시하도록 서버에 알립니다. 예를 들어, 예를 들어 작업을 수있는 htaccess로 재 작성 규칙이 될 수있다 :

RewriteEngine on 
RewriteRule ^/?B&Q-(.*)$ /scripts/b-q.php?variable=$1 [NC,L] 

이 규칙은 모든 URL의 시작 http://www.indeed.co.uk/B&Q-으로 찾을 대신 http://www.indeed.co.uk/scripts/b-q.php?variable=jobs의 내용을 표시합니다.

Apache 다시 쓰기 규칙에 대한 자세한 내용은 official documentation을 확인하십시오.

마지막으로 URL에 앰퍼샌드를 사용하지 말 것을 권장합니다 (다시 작성하는 경우에도 쿼리 문자열의 일부가 아닌 경우). URL에서 앰퍼샌드의 목적은 문자열을 쿼리 문자열에 함께 묶는 것입니다. 그 목적을 벗어나서 사용하는 것은 올바르지 않으며 앞으로 혼란을 야기 할 수 있습니다.