모든 전화를 하나의 디렉토리에 하나의 단일 스크립트로 라우팅하려고 할 때 mod_rewrite에 문제가 있습니다. 이 간단한 규칙은 리눅스에서 일하는 :Mac OSX에서 Mod Rewrite Sierra
RewriteRule의의 *의 api.cgi 오류 로그에서
를이 OS에서이 내가 얻을 "RewriteRule의 : 정규 표현식을 컴파일 할 수 없습니다 '*'".
다른 것들을 시도해 보았습니다. mod 재 작성은 일부 일치 항목에서 작동하지만 디렉토리 경로가 아닌 파일명에서만 작동합니다.
예 : RewriteRule. * api.cgi - 파일 이름이있는 파일을 api.cgi로 라우트하여 api.cgi가 작동하고 있음을 증명하지만 api.cgi로/api/config/경로를 지정하려고합니다. 나는 /api/config/something.symething 만 실제로 재 작성을 강제하는 것처럼 보일 수 있습니다 - 즉, 파일 이름이 필요합니다.
아이디어가 있으십니까? 나는 말 그대로 얼마나 많은 디렉토리가 깊든 지 또는 파일의 끝에 파일 이름이 있는지 여부에 관계없이이 디렉토리에서 호출되는 모든 것을 절대 api.cgi로 라우팅하려고합니다.
감사합니다, 매트
당신이 사용할 수있는
감사하지만 여전히 동일한 문제가 있습니다. RewriteRule^api.cgi와 RewriteRule. * api.cgi는 모두 a와 함께 리디렉션합니다. 파일 경로 일뿐입니다. 따라서 /api/config.html은/api/config로 리디렉션됩니다. 리디렉션되지만/api/config는 그렇지 않습니다. 주어진 오류 메시지는 표준입니다. 요청한 URL/~ username/cgi-bin/api2/config를이 서버에서 찾을 수 없습니다. 분명히 URL은 없지만 404 대신 리디렉션되어야합니다. –
아니요, 정규 표현식 '. *': 별표는 이전 요소가 0 번 이상 나오는 것을 나타냅니다. 그리고'.' 하나의 문자와 일치합니다. https://en.wikipedia.org/wiki/Regular_expression – Croises
문제는 귀하의 CGI에 있다고 생각합니다. – Croises