문제

.htaccess를 사용하여 리디렉션을 조각 (앵커라고도 함)이있는 URL에 리디렉션을 발행해야하지만 자동으로 #을 스케이프합니다.

현재 나는 하드 코딩 된 조각을 원하지만 URL에서 가져 오는 방법을 알고 있다면 다른 사람들을 위해서도 좋을 것입니다.

이상적으로는 QSA도 사용할 수 있어야합니다.

예를 들어:

http://www.exameple.com/test?foo=bar

있어야합니다

1) http://www.example.com/?foo=bar#MYVALUE

또는 URL에서 조각을 가져 가기 :

2) http://www.example.com/?foo=bar#test

내 (비 작업) 코드는 다음과 같습니다.

RewriteRule /test http://www.example.com/#MYVALE [R,QSA]
도움이 되었습니까?

해결책

나는 그것을 알아 낸 것 같아 ...

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /test
RewriteRule ^test/?(.*)$ $1 [C]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1?%{QUERY_STRING}#MYVALUE [NE,L,R]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} /test
RewriteRule ^test/?(.*)$ $1 [C]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1?%{QUERY_STRING}#MYVALUE [NE,L,R]

HTTP와 HTTP의 경우 다시 한 번 수행 해야하는 것은 조금 가난합니다. 그 주위에 길을 찾을 수 있는지 확인하겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top