2016-08-26 9 views
0

私が達成しようとしているのは、私のURLをあらゆる種類の余分な引数と互換性を持たせることです。PHP完全互換sefのリンク - htaccess

n個のスラッシュで動作する必要があります。私のhtaccessは127.0.0.1/store /の後にすべてを取得し、idとしてredirect.phpを送信します。私redirect.phpで

as in 
http://127.0.0.1/store/category/cars/show/1/page/2 
or 
http://127.0.0.1/store/category/cars/color/red/price/min/100 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 

RewriteRule ^(.*)$ http://127.0.0.1/store$1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ redirect.php?id=$1 [QSA,L] 

私はその後、私はリダイレクトしようと、これは今のところ私にとても良い

Array 
(
    [0] => category 
    [1] => electronics-computers 
    [2] => show 
    [3] => 1 
    [4] => page 
    [5] => 2 
) 

を与える

if($_GET['id']){ 
    $param = explode('/', $_GET['id']); 
    $template = $param[0]; 
    // header redirect -> go to category.php 
} 

スクリプト名とそのパラメータを取得するためにスラッシュを爆発しますこの例ではパラメータを持つcategory.phpファイルにコピーしますが、htaccessはトラフィックを制御するため無限のリダイレクトになります

私はredirect.phpからの要求を干渉しないようにhtaccessファイルにいくつかの例外を追加する必要がありますと思ったが、私はそれが

PSを動作させるcouldntの。これを行うには良い方法があるなら、私は

答えて

0
を教えてください

その後、私はこの例ではcategory.phpあるファイル

まあ、それはことだにリダイレクトしようとすると、この段階というをリダイレクトすべきではありません。リダイレクトにはリダイレクト応答がクライアントに返され、クライアントはサーバーに2番目の/新しい要求を返します(リダイレクトループが発生します)。

これを行うには良い方法があるなら、私はあなたがルート要求に必要

をお知らせください。必要なファイルがcontact.php(この例では)であることがわかっているので、このファイルをサーバー側で読み取り、すべての必要なパラメーターを渡して、これを同じ応答でクライアントに送り返します。

関連する問題