2017-10-03 45 views
0

取得:URL書き換えと私は私のURLを書き換えたいパラメータ

このことから:これに https://example.com/try

:meantimesで https://example.com/en/try

を、私は条件を持っている必要がありますURLはどこにあるのでしょうか?https://example.com/fr/essayerです。

だから私は実際にこのコードを持っている:

RewriteRule en/login login.php?lang=en [L,QSA] 
RewriteRule fr/connexion login.php?lang=fr [L,QSA] 

それはルックスが働いていますが、私はLANGパラメータを取得することはできません。

どうすればいいですか?

+0

になりますそれは私のために十分に明確ではありません。何回書き換えルールが必要ですか?あなたはきれいで明確な注文を使用してそれらをリストできますか? –

+0

@EduardoEscobar:ここがあなたを助けることができるもの:https://jsfiddle.net/xpgjyejn/。ありがとう。 – user8201518

+0

したがって、 'en/login'は' login.php'に正しく書き換えられますが、 'lang'パラメータを取得できません。つまり、 '$ _REQUEST ['lang']'を使用していますか? –

答えて

0

https://jsfiddle.net/xpgjyejn/コードです。私は

/en/brand 

のためのユーザーの検索は、内部でそれが検索されますときに、あなたが(内部.phpの拡張子を持つファイルにリダイレクトする、すなわち)拡張子を除去するために以下の2行を書いたことを

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

を見メートル

/en/brand.php 

Lフラグがあり、実行を停止します。その行の次のコードは実行されません。すでにそれらの

# RewriteCond %{REQUEST_FILENAME} !-f 
    # RewriteRule ^([^\.]+)$ $1.php [NC,L] 

インフロント#を追加しての.htaccessファイルコメントアウトの2行では、すべての書き換えルールを書いたように今、あなたのコードが

RewriteEngine On 

    # Removing extension 
    #RewriteCond %{REQUEST_FILENAME} !-f 
    #RewriteRule ^([^\.]+)$ $1.php [NC,L] 

    # Redirect rewrite urls 
    # brand 
    RewriteRule en/brand brand.php?lang=en [L,QSA] 
    RewriteRule fr/marque brand.php?lang=fr [L,QSA] 

    # conditions 
    RewriteRule en/conditions conditions.php?lang=en [L,QSA] 
    RewriteRule fr/conditions conditions.php?lang=fr [L,QSA] 

    # contact 
    RewriteRule en/contact contact.php?lang=en [L,QSA] 
    RewriteRule fr/contact contact.php?lang=fr [L,QSA] 

    # features 
    RewriteRule en/features features.php?lang=en [L,QSA] 
    RewriteRule fr/fonctionnalites features.php?lang=fr [L,QSA] 

    # forgot-password 
    RewriteRule en/forgot-password forgot-password.php?lang=en [L,QSA] 
    RewriteRule fr/mot-de-pass-oublie forgot-password.php?lang=fr [L,QSA] 



    # login 
    RewriteRule en/login login.php?lang=en [L,QSA] 
    RewriteRule fr/connexion login.php?lang=fr [L,QSA] 

    # pricing 
    RewriteRule en/pricing pricing.php?lang=en [L,QSA] 
    RewriteRule fr/tarification pricing.php?lang=fr [L,QSA] 

    # try 
    RewriteRule en/try try.php?lang=en [L,QSA] 
    RewriteRule fr/essayer try.php?lang=fr [L,QSA] 

# index 
    RewriteRule en/ index.php?lang=en [L,QSA] 
    RewriteRule fr/ index.php?lang=fr [L,QSA] 
+0

こんにちは、私は 'example.com/fr/essayer'などのURLにアクセスしようとすると、ホームページのコンテンツにジャンプします。私はそれが 'index'ルールの原因だと思います。どうすれば変更できますか? – user8201518

+0

そうですね、これら二つの行を中間の '#index 'に追加したためです。 RewriteRule en/index.php?lang = en [L、QSA] RewriteRule fr/index.php?lang = fr [L、QSA]' Toそれらを下に移動することを克服する。私の答えチェックのコードを変更しました –

+0

そして、どのように 'en'または' fr'パラメータを得ることができますか? '$ _GET ['lang']'または '$ _REQUEST ['lang']'は動作しません。 – user8201518