2017-06-21 18 views
1

私のサイトはindex.phpなので、すべてのページが読み込まれます。私はワードプレスを使用していません。アフィリエイトIDのhtaccess書き換えルール

私がやりたいことは、WordPressのページ構造と同じことです。 Wordpressでは、後続のサブディレクトリがindex.phpに値を渡せるように書き換えルールを設定することができます。

私は、アフィリエイトネットワークを構築し、ベースURLは、例えば、あるされているクライアントがあります。

mywebsite.com/?id=viktor 

彼らはそれが顧客のためにはるかに簡単だように、代わりにURLのを解析したいと思いますが。

つまり、mywebsite.com/u/viktorは、「再書き込み」はmywebsite.com/?id=viktorになります。

.htaccessルールまたは関連するPHPは、index.phpに入れる必要がありますか?

明らかに、サイトには「u」フォルダはありません。 :)

ありがとうございました。

This related question I believe has the code we're looking for however I'm not sure how it would apply in this situation

+0

アフィリエイトIDはどのような形式ですか?書き換えによって、ユーザーはいつでも 'mywebsite.com'ホームページ、またはURL paramを渡してリクエストしたページに戻る必要がありますか? – BenM

+0

id = viktorのようなユーザー名ですが、リダイレクトしたくありません。ブックマークするとまだmywebsite.com/u/viktorとして表示され、id変数はindex.phpに渡されます – Viktor

答えて

2

あなたはこのようにそれを行うことができます。

RewriteEngine On 
RewriteRule ^u/(.+)$ /?id=$1 [NE,L] 

をあなたはまた、既存のクエリ文字列(/u/viktor?param=value等)を保持する必要がある場合は、これを使用する:

RewriteEngine On 
RewriteRule ^u/(.+)$ /?id=$1 [NE,QSA,L] 

更新

相対URLを使用するのは悪い習慣です(このため)。しかし、実際にすべてのコードを更新したくない場合は、あなたがこれを行うことができ、スクリプトやコマンドを使って行うこと:

RewriteEngine On 
RewriteRule ^u/(.+/.+) /$1 [NE,L] 
RewriteRule ^u/(.+)$ /?id=$1 [NE,QSA,L] 

ルートに/u/下のフォルダに参照されているすべてのものを書き直すことになります。しかし、すべてのリソースに2つのURLがあるため、ブラウザのキャッシュが壊れます。本当にURLを絶対URLに更新するだけです。上記のあなたのために動作しません、あなたが唯一の特定のフォルダを書き換えたい場合は

は、このようにそれを実行します。

RewriteEngine On 
RewriteRule ^u/((?:assets|images|css)/.+) /$1 [NE,L] 
RewriteRule ^u/(.+)$ /?id=$1 [NE,QSA,L] 

を適宜フォルダ名を置き換えます。

+0

これはうまくいきましたが、UNIXでは引き続きCSS、つまりhref = "assets/css/custom-animations.css"が 'u'フォルダの内側にあるため、画像は絶対に参照されません。私たちは、すべてのコード行を読み込んで、やり直して、/を追加しなければなりません。ルールを書き直す方法はありますか?/ u/- http://ufunnel.net/u/earthgridを参照しても、ルートディレクトリに移動してください。CSSが表示され、それは 'u'フォルダ内にあると考えているからです。私たちは近くにいる!!!!! – Viktor

+0

すべてのファイルとページのすべての相対参照を完全に変更するより簡単な方法はありますか? - 書き換えたときに - ディレクトリを削除するなど、すべての参照に対して../。それは心のベンダーです!ご協力いただきありがとうございます! – Viktor

+0

私はそれについての更新を追加しました。このように見えるのはUNIXではなく、Webブラウザです。 – SuperDuperApps

1

あなたはここにある問題は、ヴィクトルは、それがリクエストを処理しているときのWordPressが URLをチェックすることです。これは、すべてをに書き換えるmod_rewrite独自のルールがあるためです。

mod_rewriteでWordPressがあなたの書き換えられたURLを見ないので、あなたが望むことができないので、それを/u/viktorとして処理します。あなたは301のリダイレクトでそれを行うことができますが、あなたはすでにそれをしたくないと言っています。

これを正しく動作させるには、WordPressを使用してこれらのURLを機能させるためにプラグインを作成する必要があります。私はワードプレスのindex.phpに何かを追加することはお勧めしません。ワードプレスが更新されたときだけ上書きされるからです。

+0

OPはWordpressを使用していませんが、Wordpressが使用しているいくつかのことをしたいだけです。 – Iceman

+1

私は今質問が更新されて参照してください:)ヘッドアップありがとう。 – SuperDuperApps

関連する問題