문제

내 컴퓨터 중 하나에 phpmyid를 설정하고 암호가 제출 될 때만 Apache가 HTTP로 리디렉션하려고합니다. 모든 OpenID 트래픽을 리디렉션하는 원래 설정 설정이 작동하지 않았기 때문에 STACKOVERFLOW는 내 자체 서명 인증서를 좋아하지 않기 때문에이 작업을 수행하고 있습니다. 이것은 내가 쓴 새로운 규칙이지만 작동하지 않습니다.

RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
도움이 되었습니까?

해결책

포트 (http 또는 httpd)와 쿼리 문자열을 모두 테스트하려면 조건을 사용해야합니다.

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule /openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

.htaccess에있는 경우 대신 사용해야합니다

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

다른 팁

더 나은 솔루션은 다음과 같습니다.

    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^openid/index\.php$ https://%{SERVER_NAME}/openid/index.php

설명 : RewriteCond %{SERVER_PORT} 80 또한 포함하는 포트와도 일치합니다 80. 패턴에 동일하게 적용됩니다 openid/index.php (어디 ".”또한 어떤 캐릭터도 될 수 있습니다). Mod_rewrite가 대체 쿼리가 제공되지 않는 한 원래 요청 된 쿼리를 자동으로 추가하므로 쿼리를 추가하는 것은 필요하지 않습니다.

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