2011-10-31 2 views
4

모든 URL을 301 리디렉션으로 단축하는 작업을하고 있습니다. 거의 전부 수정했지만, 다시 작성하지 않을 .cfm으로 끝나는 URL이 있습니다. 내가 /page.cfm/page.html에 변경하는 경우htaccess 다시 쓰기 규칙이 .cfm으로 끝나는 URL로 작동하지 않습니다.

FROM: http://www.mydomain.com/index.cfm/catlink/17/pagelink/7/sublink/34/art/41/rec/1/page.cfm 

TO: http://www.mydomain.com/story/resources/health/page/168/page.html 

후 재 작동합니다. 여기

내 다른 URL을

RewriteRule ^index.cfm/catlink/([a-zA-Z0-9/-]+)([/])pagelink/([a-zA-Z0-9/-]+)([/])sublink/([a-zA-Z0-9/-]+)([/])art/([a-zA-Z0-9/-]+)(.*)$ 

http://localhost/index.cfm?page=moved&cat=$3&subcat=$5&article=$7&story=$8 [R=301] 

의 URL .html로로 끝나는 경우지만 .CFM로 끝나는하지 왜 작동합니까 작동 재 작성 규칙입니다? 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 일을 얻을 수

http://www.mydomain.com/index.cfm/catlink/17/pagelink/7/sublink/34/art/41/rec/1/page.cfm 

내가 수동으로 .html 파일을 그것의 끝을 변경하는 경우 :

http://www.mydomain.com/index.cfm/catlink/17/pagelink/7/sublink/34/art/41/rec/1/page.html 
+0

시도하고있는 두 개의 링크를 표시하십시오. 그것이'html' 링크가 통과하고'cfm' 링크가 실패한 것입니다. –

+0

링크가 작동하도록 변경하는 방법을 추가했습니다. url의 끝 부분을보십시오. – dadtothebone

+0

정규 표현식이 다소 느슨합니다. 그게 네 근본 원인이라고 생각해. 숫자를 모두 캡처하고 있습니까? –

답변

0

첫째, 변화

이 현재 링크는 작동하지 않습니다 혼자 migh 있다고 생각

^index.cfm/catlink/(\d+)/pagelink/(\d+)/sublink/(\d+)/art/(\d+)/(.*)$ 

: 당신의 RewriteRule의 당신의 첫 번째 부분은 다음과 같은 더 간결하게 표현 될 수 있습니다 문제를 해결하십시오. 그것은하지 않습니다, 당신은 URL의 나머지 부분에 대해 상관 없어 경우, 다음을 시도해보십시오 :

^index.cfm/catlink/(\d+)/pagelink/(\d+)/sublink/(\d+)/art/(\d+)/ 

참고 :이 앵커 ($)를 제거하기 때문에에 URL을 수 있습니다 끝이 없으 리라.

+0

요청한 url이'.cfm' 이외의 것으로 끝나면 다시 작성하는 것이 좋습니다.이 규칙은 내가이 규칙과 관련이 없다고 생각합니다. –

+0

@Kevin B, 당신이 지적했듯이 이것은 다른 어떤 것으로 인한 것이어야합니다. 내가 제공 한 규칙은 * 작동해야합니다. –

2

Apache가 .htaccess를보기 전에 Apache httpd가 Tomcat에 전달하는 것이 문제입니다. 이를 테스트하려면 재 작성 규칙을 가상 호스트로 이동하십시오. 그들이 작동한다면, 그게 바로 문제입니다.

+1

예, 우리는 이것이 문제가되도록 좁혔습니다. 모든 재 작성을 위해 서버 파일을 수정하지 않고도이 작업을 수행 할 수있는 또 다른 방법이 있습니까? – dadtothebone

+0

Railo 커뮤니티의 Jordan Michael은 mod_cfml이라는 네이티브 커넥터에서 작업하고 있습니다. 저는 이것을 믿기 위해 계정에 넣습니다. - Railo 메일 링리스트에서 계속 지켜봐주십시오. 그렇지 않으면 아파치에서 mod_jk/ajp/timing 문제로 어떻게 해결할 수 있을지 잘 모르겠습니다. – webRat

관련 문제