2011-10-31 4 views
4

私はすべてのURLを301のリダイレクトで短縮するように取り組んでいます。私はそれらのほとんどすべてを修正しましたが、書き換えない.cfmで終わるURLがあります。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 

私は/page.html/page.cfmを変更する場合は、リライトが動作します。ここで

は私の他の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

お試しの2つのリンクを表示してください。それは '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

@ケビンB、あなたが指摘したように、これは他の何かによって引き起こされているに違いありません。私が提供したルールは*働かなければなりません。 –

2

問題はApacheが.htaccessを見る前にTomcatに渡しているということです。これをテストするには、書き換えルールを仮想ホストに移動します。彼らがうまくいけば、それが問題なのです。

+1

はい、これを問題に絞り込んでいます。すべての書き換えのためにサーバーファイルを変更せずにこれを達成する別の方法がありますか? – dadtothebone

+0

RailoコミュニティのJordan Michaelは、mod_cfmlというネイティブコネクタに取り組んでいます。これは、私が信じていることを考慮に入れて、Railoメーリングリストで調整されています。そうでなければ、Apacheのmod_jk/ajp/timingの問題のように、どうやってこの問題を回避するのかは分かりません。 – webRat

関連する問題