2017-07-03 18 views
0

私は検索していますが、うまくいきません。.htaccess - index.phpを削除し、複数のパラメータでリダイレクト

私は、次の.htacess

RewriteEngine on 

# Rewrite request URL 
# Input: index/VIDEO/ 
# Output: index.php?id=VIDEO 
RewriteRule ^(\w+)/?$ index.php?id=$1 

それは、次のURLを変更し、正常に動作してい:

https://subdomain.domain.com/path/to/index.php?id=234556 

https://subdomain.domain.com/path/to/234556 

しかし、私は二番目のパラメータを追加しました(

にライセンスを)ので、次のURLを書き換える必要があります:

https://subdomain.domain.com/path/to/index.php?id=234556&license=23432532 

https://subdomain.domain.com/path/to/234556/23432532 

それとも

https://subdomain.domain.com/path/to/234556&license=23432532 

に私はここで検索する複数の方法をしようとしてきたが、私は、この仕事を傾けます。

答えて

1

あなたが使用することができます:それは/が見つかるまで最初のパラメータはすべての値を保持している

RewriteRule ^([^/.]+)/(.*?)$ /index.php?id=$1&license=$2 [L,QSA] 

、これで。次のパラメータはすべてを保持します。最初の式を複数回繰り返すこともできます。


代替方法:

しかし、あなたのアプリケーションが動的に処理する必要のあるいくつかのより多くの検索パラメータを必要とするとき、あなたはPHPでREQUEST_URIを利用することができます。

その場合は、あなたのRewriteRuleは次のようになります

RewriteRule^index.php [L] 

そしてPHPで、あなたは$_SERVER['REQUEST_URI']を使用して、すべての値を取り出すことができます。

if (isset($_SERVER['REQUEST_URI'])) 
{ 
    $params = explode("/", ltrim($_SERVER['REQUEST_URI'], "/")); 
    print_r($params); 
} 

を別のSO Answerを参照してください。このようにして、他のページは同じ書き換えルールを異なる目的で利用することができます。

+0

ありがとうございました。 Imは "Xamppにオブジェクトの場所がありません"を取得します。 $ /index.php?id=$1&license=$2 [L、QSA] テストするURL: http:// localhost/api/source/videos/28652187/23432324 – Kokox

+1

'/'を 'index.php'の前に削除します。これは、あなたの 'localhost'をテストすることはできません。' RewriteRule ^([^ /。] +)/(。*?)$ index.php?id = $ 1&license = $ 2 [L、QSA] ' – Thamilan

+0

URL :) – Thamilan

関連する問題