워드 프레스 재 작성 규칙을 사용하여 개발중인 플러그인에 대한 라우팅을 구성하려고합니다. 플러그인 용으로 만든 클래스 내에서 코드를 호출하고 있습니다. 사용중인 코드는 다음과 같습니다.
function __construct() {
add_action('init', array($this, 'category_rewrite_rule'), 10, 0);
}
function category_rewrite_rule() {
add_rewrite_rule(
'^products/([^/]*)/?',
'index.php?category=$matches[1]',
'top'
);
}
와 같은 URL을 가져와 domainname.com/products/garden
표시 해야 /index.php?category=garden
하지만 현재 사이트의 홈페이지를 표시합니다. 직접 이동 /index.php?category=garden
하면 예상 페이지를 볼 수 있습니다.
정상적으로 작동하는 클래스 내에 다른 함수가 있으므로 코드가 실행되고 있음을 알고 die()
있으며 예상대로 작동하는 다시 쓰기 함수에 넣을 수도 있습니다 .
WP 설정-> 영구 링크 페이지에서 저장을 눌러 코드를 변경할 때마다 링크를 새로 고쳤습니다.
내 로컬 개발 환경에서 문제가 될 수 있다고 생각했습니다. Laravel Valet을 사용하는 Mac에서 작업 중이며 .htaccess
사이트 루트 폴더에 파일 이 없음을 발견했습니다 . 수동으로 생성 (기본 WP 코드 사용)을 시도했지만 도움이되지 않았습니다.
편집 : 오늘 오후에 Laravel Forge를 사용하여 Wordpress 웹 사이트를 설정하고 플러그인을 설치했지만 여전히 동일한 문제가 발생하므로 결국 서버 환경이 아닐 수도 있습니다 :(
편집 2 : VM에 LAMP 스택을 설정했으며 코드가 작동하므로 Laravel Valet / Forge (Nginx)를 사용하는 것과 관련이 있습니다.
누구든지 도울 수 있습니까?
감사
내 편집에서 의심되는 것처럼 문제는 내 로컬 및 첫 번째 테스트 서버가 Laravel Valet 및 Laravel Forge를 (각각) 사용했기 때문입니다.
VM에서 LAMP 스택을 사용하려고 할 때 코드가 예상대로 작동했기 때문에 이것이 문제라는 것을 깨달았습니다.
결국 서버가 Nginx를 사용할 때 Wordpress의 add_rewrite_rule 함수를 사용할 수 없기 때문에 다시 쓰기 규칙을 내 Nginx 구성에 수동으로 추가해야한다는 것을 깨달았습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다