모든, 나는 현재 완전히 내 현재의 뉴스 사이트를 개편 CakePHP를 사용하고CakePHP의 : 라우팅 문제
. 현재 사이트의 모든 기사를 새로운 사이트로 이전했거나 현재 사이트와 동일한 내용으로 변경합니다. article_id
그러나, 나는 다음과 같은 문제를 깨달았다.
나의 현재 사이트 URL로 다음과 같은 설정을 사용
http://www.mydomain.com/?c=140&a=4388
c=
참조 범주 ID 및 a=
참조 문서 ID를. 나의 새로운 설정 (CakePHP를) 나는 굼벵이를 활용하고 이제 내 기사의 URL이 표시 :
http://www.mydomain.com/noticia/this-is-an-article-slug
이 때문에 내가 webstats 통해, 발견 한 내 기사의 대부분이 페이스 북과 같은 다른 사이트에 링크 설정을 통해 액세스됩니다, , 나는이 문제를 해결할 시스템/경로를 만드는 것이 중요하다고 생각했다. ,
- 이 경로 내 기사 컨트롤러에 리디렉션 기능에 매개 변수로
a
값을 전달합니다 - 위에서 언급 한 것과 비슷한 요청을 감지하는 경로를 만듭니다
이 내가 생각하고 무엇을 같은
articleRedirect($article_id)
으로이 기능은 다음 전달
,536 (아래 함수를 참조)$article_id
에 따라slug
에 대한 데이터베이스에서 찾아 볼 것이며, 새 주소로 리디렉션// Function in articles controller to redirect old site's article url to // new websites url format function articleRedirect($article_id = NULL){ $this->Article->recursive = -1; $slug = $this->Article->findById($article_id); if($slug == NULL){ $this->Session->setFlash('Article not found'); $this->redirect('/noticias'); }else{ $this->redirect('/noticia/'.$slug['Article']['slug']); } }
나는 그렇게 생각한다. 그러나 라우팅과 관련하여 도움이 필요합니다. 누구나 사용할 수있는 경로를 제안 할 수 있습니까?
대단히 감사합니다.
시도했지만 작동하지 않습니다. 다시 쓰기 규칙에 문제가있을 수 있습니다. 나는 계속 다른 일을 시도 할 것입니다. www.mydomain.com/?c=135&a=1341을 입력하면 기본적으로 아무런 문제가 없습니다. 그것은 단순히 내 frontpage에 액세스합니다. –
@CaboONE 예, 재 작성은 % {QUERY_STRING} 변수의 RewriteCond를 /로 사용해야합니다. 'RewriteRule ^// noticia/% 1 /'과 함께'RewriteCond % {QUERY_STRING}^c = [0-9] + & a = ([0-9] +)'와 같은 일이 일어날 수 있습니다. – Oldskool
나는 아직도 그것을 할 수 없었다. 내가 사용하기로 결정한 솔루션을 게시했습니다 ... –