2012-08-14 2 views
0

Nginx 웹 서버에 Magento v1.4.1.1 설치가 있습니다.동적 Magento URL 재 작성

#5028 is the dynamic id passed in the URL 
$baseUrl/design/index/index/design_id/5028 

에 : 나는 다음과 같은 동적 URL을 다시 작성하기 위해 노력하고있어

$baseUrl/my/design/5028 

나는 문제없이 정적 URL을 재 작성하는 젠토의 "URL 재 작성 관리"를 사용하고 있습니다. 하지만 동적 매개 변수를 사용할 수없는 것 같습니다.

나는 또한 나의 server{} 위치

rewrite ^/my/designs/([0-9]+)$ /design/index/index/design_id/$1 last; 

를 내부 Nginx에 구성에 다음과 같은 작업을 수행 할 시도했다 그러나 내가 http://mysite.com/my/design/5028

또 다른 규칙에 액세스하려고하면 나는 404 오류가 계속, 캐치를 받고 아니에요 이 옆에있는 것은 완벽하게 작동합니다.

rewrite ^(/fb)/design/([0-9]+)$ $1/landing_no_contest.php?design_id=$2? last; 

어떤 도움을 주셔서 감사합니다.

답변

2

예, Magento의 "URL 다시 쓰기 관리"는 이 아니며은 동적 링크 afaik를 지원합니다.

프로그래밍 방식으로하지만, 그것을 design_id 당 정적 재 작성을 추가 할 수 있습니다

$iStoreId = 1; 
$sOptions = 'RP'; // 'RP' for a 301, or 'R' for a 302 
$aDesignId = array(5026, 5027, 5028); 

foreach ($aDesignId as $iDesignId) { 
    Mage::getModel('core/url_rewrite') 
     ->setStoreId($iStoreId) 
     ->setCategoryId(null) 
     ->setProductId(null) 
     ->setIdPath(str_replace('0.', '', str_replace(' ', '_', microtime()))) 
     ->setRequestPath('design/index/index/design_id/' . $iDesignId) 
     ->setTargetPath('my/design/' . $iDesignId) 
     ->setIsSystem(0) 
     ->setOptions($sOptions) 
     ->save(); 
} 
+0

덕분에 당신의 응답을. 이 코드를 어디에 추가해야합니까? 내 관심사는 지금, 내가 5k + 디자인을 가지고, 그때 나는 5k + 정적으로 다시 작성해야 할거야 ?? 정규 표현식을 사용하여 경로를 등록하는 방법이 있는지 아시나요? 제 모든 design_id가 정수 값이라는 것을 알고 있습니다. – mbenegas

+0

나는이 경로를 페이지를로드 할 때마다 등록했지만, 이제는 core_url_rewrite에 저장하는 것을 볼 수 있습니다. Mage :: getModel ('core/url_rewrite')'감사합니다. 그래서 솔루션은 기존 설계를 한 번 등록한 다음 새로 작성한 각각의 설계마다 새로 정적 재 작성을 추가하는 것이 었습니다. – mbenegas