4

私はすべての URL を 301 リダイレクトで短くするように修正しています。私はそれらのほとんどすべてを修正しましたが、.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.cfmすると/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
4

2 に答える 2

2

問題は、Apache が .htaccess を参照する前に、Apache httpd がそれを Tomcat に渡していることです。これをテストするには、書き換えルールを vhost に移動します。それらが機能する場合、それが問題の原因です。

于 2011-11-21T18:35:46.137 に答える
0

まず、RewriteRule の最初の部分を次のより簡潔な式に変更します。

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

それだけで問題が解決する可能性があると思います。ただし、そうでなく、残りの URL を気にしない場合は、次のことを試してください。

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

注:これにより、アンカー ( $) が削除されるため、URL をオープンエンドにすることができます。

于 2011-10-31T14:19:29.520 に答える