2011-07-01 16 views
0

私は自分のウェブサイトをPHPで元々作り、ページ/製品の識別にパラメータを使用しました。.htaccess不満を書き直し

ex.) http://mysite.com/?pid=my_products&sid=golf_clubs&GTIN=111111111111 

は、私は今、RoRのを使用して上に移動しましたし、私はチュートリアルを見てきました

http://mysite.com/my_products/golf_clubs/111111111111 

URLをクリーンアップするためにリダイレクトを設定したいのですが、これに到着しました:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ ?pid=$1&sid=$2&GTIN=$3 [NC] 

私はURLをテストしましたが、リダイレクトされません。私は、デバッグに.htaccessファイルでこれを入れてみましたし、775にログフォルダをchmoddedが、私は500エラーを取得しました:

RewriteLog "/home/myaccount/rails_apps/myapp/log/rewrite.log" 
RewriteLogLevel 3 

は限り.htaccessファイルで書き換え文が行くように、これは私が持っているものです。 *

RewriteEngine On 
RewriteLog "/home/myaccount/rails_apps/myapp/log/rewrite.log" 
RewriteLogLevel 3 
RewriteBase/
RewriteCond %{REQUEST_URI} ^/downloads.* 
RewriteRule .* - [L] 

RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ pid=$1&sid=$2&GTIN=$3 [NC] 

RewriteRule ^$ index.html [QSA] 
RewriteRule ^([^.]+)$ $1.html [QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] 

ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly" 

私は、共有ホスティングプランの午前お申し込み(私は、彼らはすぐにRailsの3に更新したい希望は良いGAWD)

+0

OLDスタイルのURL「http://mysite.com/?pid = my_products&sid = golf_clubs&GTIN = 111111111111」から新しいスタイル「http://mysite.com/my_products」に**リダイレクト**したいと思っています。/golf_clubs/111111111111'?もしそうなら、あなたのルールは残念なことに別の方法でやっています。 – LazyOne

答えて

0

と私が正しくあなたを理解していれば、あなたは後方自分のルールを持っています。あなたはあなたの古いURLをキャッチし、それらを新しいフォーマットに書き直したいと思いますか?その場合、あなたはこの希望:301件のステータスを追加

RewriteRule ^\?pid=(\w+)\&sid=(\w+)\&GTIN=(\w+) /$1/$2/$3 [NC,R=301,L] 

をあなたの正規のURLが恒久的に変更されていること(行儀の検索ボットを含む)ユーザーエージェントを教えてくれます。

+0

これはうまくいかないでしょう - 'RewriteRule'は代わりに' RewriteCond'を試してみてください。 – LazyOne

+0

両方のコメントを考慮した後は、リダイレクト先にありますが、2番目と3番目のパラメータがない場合は二重スラッシュ「//」を追加します。 (?:\&GTIN =(\ w +))?RewriteCond%{QUERY_STRING}^pid =(\ w +)(?:&sid =(\ w +)) RewriteRule^$%1 /%2 /%3 [NC、R = 301、L] – JakeTheSnake

+0

@Jakeこの場合(いくつかのパラメータがない場合)、3、2、1パラメータの3つのルールをその順序でのみ作成します。さもなければ、あなたがRoRアプリケーションでリダイレクトを発行する必要があります。なぜなら、パラメータがないときにデフォルト値を挿入する方法を知らないからです。 – LazyOne

関連する問題