2017-01-19 5 views
0

現在、私の.htaccessコードは{REQUEST_URI}$_GETとしてload.phpに送信します。 SEOの目的のために、に送信される$_GET配列を変更せずにURLの一部を削除したいと思います。

domain.com/products/product-name 

を私はディスプレイにURLをしたいと思います:

domain.com/product-name 

load.phpに送信され$_GET変数を変更することなく、私が持っている場合たとえば

ご協力いただければ幸いです。私は現在のコードを含めました。

RewriteEngine on 

RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

明確化:

$_GET[0]は適切なファイルを開くためのアプリケーションを指示する「コントローラ」変数として機能します。したがって、適切なファイルの代わりに常にcontrollers/products.phpが開かれるため、「製品」を$_GET[0]にハードコードすることはできません。

答えて

1

私はディスプレイにURLをしたいと思います:

domain.com/product-name

load.phpに送ら です$ _GET変数を変更せずに。

あなたが求めていることをする唯一の方法は、書き換えの置換文字列のURLの一部をproductsでハードコードすることです。下記参照。その後、URL load.phpは常にproducts/somefileを受信します。

RewriteEngine on 

RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ index.php?url=products/$1 [L,QSA] 

更新:このソリューションは、置き換えるパス/コントローラが1つある場合に機能します。

コントローラを参照する必要があります。したがって、リクエストにコントローラがない場合は、$ _GET変数に転送するものはありません。 PHPは要求がどこに来るのかを知らないでしょう。それはあなたのSEOに影響を与えてはいけません。

+0

だから私はそれを試みましたが、私は$ _GET変数ごとに製品を望んでいません。私が使うif文はありますか?私は1つを探してみましたが、それを理解できませんでした... – Blaise

+0

あなたは$ _GET変数を変更せずに言った。あなたは何をしたいのですか?あなたの質問を更新してください。 –

+0

完了。基本的に$ _GET [0]個のサーバーをコントローラー変数として使用し、プログラムが正しいファイルを開くように指示します。したがって、私は$ _GET [0] – Blaise

関連する問題