2012-03-08 40 views
1

私はこれをやや簡単にしたいと思うので、私は簡単な応答を期待できます。私はmod書き直しにいくらか新しくなっています(ほとんどの場合、index.php?page=xとその名前にmodを書き換える小さなCMSがあります)。私は外国人が私の会社のために作成したショッピングカートを持っています。私はここで作業を始める前にドキュメントをほとんど何も書かずにカートの検索エンジンをフレンドリーにするよう求めています。私は詳細であまりにも汚れてはいけません、ちょうど質問をする必要があります。改ページと改行

私は、例えば、results.php?name=friendly-urlを持っています。 .htaccessを編集したので、フレンドリーなURLでこれらのページにアクセスできます。それは完全に動作します。今、カートは、それが$_GET変数は愚かな命名されているために、ちょっとぎこちなくページ付けするために書かれた

RewriteRule ^([A-Za-z0-9-]+).html$ results.php?name=1 

。私は、本当に汚くなくても、簡単な友好的なページ区切りを作るために、ファイル名を変更したり、コード内のディレクトリを再ルーティングしたりする必要がないことを知りたいと思っています。

私が探している最終結果はstarter-kits-01.htmlstarter-kits-02.htmlというようなものです。これは私が働く何かを得るために努力してきたモッドリライトです。

RewriteRule ^[A-Za-z-0-9-]+).html?p=([0-9]+)$ results.php?name=$1&pageNum_rsCWResults=$2 

これは、私がレンダリングできるようにするべきであると信じていますstarter-kits.html?p=2。私はmodの書き換えエラーは発生しませんが、それは私の$_GET変数を台無しにしています。 /starter-kits/2/は、汚れていないし、外国人が作ったこの厄介なコードを通過して500行のディレクトリを変更することなく、私はできません。

私は約30分を費やしています。今日は3つのプロジェクトがありますので、私はmod rewritingでもう少し経験を積んだ人を待っている間に移動しますハンド。

非常に高く評価されています。

+0

[Query Strings&Mod ReWrite](http://stackoverflow.com/questions/487726/query-strings-mod-rewrite)の可能な複製 - 最初に検索を使用し、右側の関連セクションも参照してください。 – hakre

答えて

1

ちょうど使用:

RewriteRule ^([A-Za-z0-9-]+).html$ results.php?name=1 [QSA] 

QSAの一部が書き換えに上の任意のGETパラメータを転送するように指示します。あなたがする必要が書き換え

http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa

+0

完璧に作業しました。本当にありがとう。 – lxndr

+0

うれしい私は助けることができました。 upvoteと自由にこの答えを受け入れる:) – Corbin

0

ページには、PHP自体に行われ、唯一のmod書き換えで数行を必要としなければなりません。 DrupalやWordPressのコピーをダウンロードすることをお勧めします。しかし基本的にここでそれはどのように動作すべきかです。

あなたは、このようなURL構造を作成:(以前のURLと同じ場所を指している必要があります

  • 製品検索/猫おもちゃ
  • 製品検索/猫のおもちゃ/ページ-1をあなたのサイトを取り、すべてが中央インデックスを通じて中継してい)
  • 製品検索/猫のおもちゃ/ページ-2(また、「製品の検索/猫のおもちゃ/ページ/ 2を使用することができます)

.phpファイルでは、mod rewriteがこれを処理します。あなたのサイトのURLとPHPは渡されたパラメータを取り込み、URL構造に解析して結果に導きます。

URLパスは、modリライトによって、基本的にindex.phpに1つのパラメータに渡されます。

(Wordpressのと非常に似てDrupalは、から)サンプルモッズ書き換えエントリ:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

より良いアイデアを得るために、これらのシステムをチェックしてみてください。 WordPressははるかに簡単で、より簡単なシステムです。