2016-05-16 11 views
1

htaccessファイルの書き換えを作成する際に問題となる2種類のクエリ文字列URLがあります。最初のURLタイプは/component/afcatrades/109165?view = profileです。私は、クエリ文字列?ビュー=プロファイルを削除して、このURLタイプに%1は、プロファイルIDでhttp://www.afca.ab.ca/links/afca-trade-members/profile/%1を、それを書き換える必要がしています。私は次の書き換えルールを考え出しましたが、うまくいきません。それを動作させるためには何を調整する必要がありますか?2種類のクエリ文字列URLの書き換え条件を作成

RewriteCond %{REQUEST_URI} ^/([0-9]+)$ 
RewriteCond %{QUERY_STRING} ^view=profile$ 
RewriteRule ^(.*)$ http://www.afca.ab.ca/links/afca-trade-members/profile/%1 [L,R=301] 

2番目のURLのタイプは、ブックストアです?ページ= shop.product_details & flypage = flypage-ask.tpl &のproduct_id = 4410 & CATEGORY_ID = 11。私は、クエリ文字列?ページ= shop.product_details & flypage = flypage-ask.tpl &のproduct_id = 4410 & CATEGORY_ID = 11を削除して、このURLタイプhttp://www.afca.ab.ca/book-store/delmar-cengage-nelson-education、URLの最後のセグメントにそれを書き換えるために必要としていますcategory_idに関連付けられているブックストアカテゴリです。 product_idの値は0〜9で、新しいWebサイトの特定の製品に接続する必要はありません。私はそれを製品のカテゴリにリダイレクトする必要があります。私は書き直しルールを含めましたが、やはり動作しません。

RewriteCond %{QUERY_STRING} page=shop.product_details&flypage=flypage-ask.tpl&product_id=([0-9]+)$&category_id=11 
RewriteRule ^(.*)$ http://www.afca.ab.ca/book-store/delmar-cengage-nelson-education? [R=301,L] 

ご協力いただきまして誠にありがとうございます。ありがとうございました。

+0

あなたのために働いていないいただきましたか? – starkeen

+0

@starkeen最初のURLは** http://www.afca.ab.ca/links/afca-trade-members/109165?view = profile **に書き直されています。このページは空白です。エラー。 2番目のURLは書き換えられておらず、このページのコンテンツを読み込みます**このURLのhttp://www.afca.ab.ca/book-store** ** http://www.afca.ab .ca/bookstore?page = shop.product_details&flypage = flypage-ask.tpl&product_id = 4456&category_id = 11 **これはブラウザのアドレスバーに表示されます。 –

答えて

0

これは動作するはずです:

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^view=profile$ 
RewriteCond %{REQUEST_URI} ^/component/afcatrades/([0-9]+) 
RewriteRule ^(.*)$ /links/afca-trade-members/profile/%1? [L,R=301] 

RewriteCond %{REQUEST_URI} ^/book-store 
RewriteCond %{QUERY_STRING} page=shop.product_details&flypage=flypage-ask.tpl&product_id=([0-9]+)&category_id=11 
RewriteRule ^(.*)$ /book-store/delmar-cengage-nelson-education? [R=301,L] 
+0

アドレスバーに最初のリライトが** http://www.afca.ab.ca/links/afca-trade-members/800792?view = profile **と表示されています。ご覧のとおり、クエリ文字列は削除されておらず、プロファイルはURLとしてセグメントとして追加されていません。 2回目の書き換えではクエリ文字列も削除されません。 ** http:// wwwの代わりに** http://www.afca.ab.ca/book-store?page = shop.product_details&flypage = flypage-ask.tpl&product_id = 4410&category_id = 11 **のように表示されています.afca.ab.ca/book-store/delmar-cengage-nelson-education ** –

+0

奇妙なことに、RewriteRuleの最後にある疑問符は、クエリ文字列を削除する必要があります(テストサーバーでも同様です)。あなたのApacheのバージョンは何ですか? –

+0

サーバはApache 2.2.22を使用しています。この書き換えは機能しています。プロファイルと同じベースURLを持ちます。リダイレクトされるURLは、http://afca.ab.ca/component/afcatrades/?view = list **です。 'RewriteCond%{QUERY_STRING}ビュー=リスト RewriteRule ^(。*)$ http://www.afca.ab.ca/links/afca-trade-members? [R = 301、L] ' –

関連する問題