2016-12-31 16 views
0

.htaccessのURL書き換え、文字と数字

localhost/classifieds/index.php?page=activate&extra=$2y$10$LsV9m8JgEz2zMaJYRNqocuOzaqR8oHmn3tBIjIQv.TI4JWd3rWVrC 

へ:

localhost/classifieds/activate/$2y$10$LsV9m8JgEz2zMaJYRNqocuOzaqR8oHmn3tBIjIQv.TI4JWd3rWVrC 

私が入力した場合、最初の部分は、成功しています。

localhost/classifieds/activate 

それは私を与える:

localhost/classifieds/index.php?page=activate 

これにより、正しいコントローラをロードします。

私の大きな問題は、ルールでURLの第2部分も書き直したいということです。

私はさまざまな正規表現の組み合わせを試しましたが、役に立たないものです。

+1

これは役に立ちますか? 'RewriteRule^classifieds/activate /(.*)$ index.php?page = activate&extra = $ 1 [NC、L、QSA]'。 LE:通常は、PHPアプリケーションに動的にすべてのものをルーティングさせ、存在する場合にどのコントローラがインスタンス化されるかを管理します。 'RewriteRule ^(。*)$ index.php [L、QSA]'プログラムでURLをコントローラ、アクション、およびパラメータに分割します –

+0

ありがとうございました。私は少しあなたの答えを変更し、それは動作します。これは私が最後に 'RewriteRule ^([a-zA-Z0-9] +)/(。*)/ $ index.php?page = $ 1&extra = $ 2' – theFreakative

答えて

0

classifieds/activate/whatever黙っindex.php?page=activate&extra=whateverをヒットするためには、あなたがこのような何か必要があります:あなたが任意のクエリ文字列パラメータを渡すことにしたい場合は

Options +FollowSymLinks 

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    # Match the host, if you wish 
    #RewriteCond %{HTTP_HOST} ^localhost$ 

    RewriteRule classifieds/activate/(.*) index.php?page=activate&extra=$1 [L] 
</IfModule> 

を、あなたはの終わりにQSA flagを追加する必要があります書き換えルール。

必要に応じて、オンラインでテストすることができます。

あなたはpageパラメータにURI(この場合はactivate)の第2セグメントを書き換えるために、より一般的な書き換えルールが必要な場合は、ここでは何が必要です:

RewriteRule classifieds/(.*)/(.*) index.php?page=$1&extra=$2 [L] 

あなたは何について具体的にすることができますあなたが期待したい文字。 (.*)をスワップする場合は、([0-9A-Za-z])または(\w)の英数字の値のみを受け入れます。

関連する問題