참고 :이 코드는 문제의 간단한 설명을 위해 기본 사항을 유지하면서 위생적으로 처리되지 않습니다. 내 프로덕션 코드는 처리하기 전에 $ _GET을 위생 처리합니다. 내가 얻을 http://local.testzone.com/cat/title 또는 http://local.testzone.com/catHTACCESS가 500 내부 서버 오류를 일으켰습니다.
: 나는 내 테스트 URL로 이동하는 경우
$cat = $_GET['cat'];
$title = $_GET['title'];
if($cat && !$title) {
echo 1;
}
if($cat && $title) {
echo 2;
}
: 여기
RewriteEngine on
RewriteCond %{REQUEST_URI} "/files/"
RewriteRule (.*) $1 [L]
RewriteRule ^(.*)/(.*)$ ?cat=$1&title=$2 [L]
RewriteRule ^(.*) ?cat=$1
내 PHP 파일입니다 : 여기
내 htaccess로 파일입니다 500 내부 서버 오류.
나는 htaccess로 파일의 마지막 줄에 언급 경우
#RewriteRule ^(.*) ?cat=$1
http://local.testzone.com/cat이 날 제공 :
를 찾을 수 없음
을 요청 된 URL/고양이가이 서버에서 찾을 수 없습니다 .
http://local.testzone.com/cat/title 저를 제공합니다
2
는 고양이와 제목이 존재하는 경우 (2) 내 내 PHP는 에코를 따라해야 할 일이다.
내 질문은 - 어떻게 액세스 파일을 수정하여 고양이가있는 경우에만 1을 반향 출력합니까? 이 작업을 수행 할 수있는 유일한 방법은 수동으로 첫 번째 수준을 다음과 같이 설정하는 것입니다.
RewriteRule ^cat$ ?cat=cat
이 방법은 작동하지만 응용 프로그램에서는 작동하지 않습니다. URL의 cat 값을 기반으로 데이터베이스를 쿼리해야합니다. cat 값은 동적으로 변경 될 수 있으며 htaccess 파일에 하드 코드 할 수 없습니다. 제목은 잘 작동하지만 고양이 부분을 어떻게 작동 시키나요?
희망에 따라 도움이 필요하다는 희망이 들었습니다.
재 작성 규칙에 따라 무한 루프가 발생하므로 아파치가 10 번의 리디렉션 후 깨질 수 있습니다. 리뷰를 시도해보십시오. 특히 RewriteRule^(. *)? cat = $ 1 – nicolas