.htaccess不明なサブフォルダーの書き換えルール

Dec 18 2020

私は次の問題に直面しています:

サーバー内の私のフォルダー構造は次のとおりです:public_html / projects /

ツリービュー:フォルダ構造ツリービュー

public_htmlフォルダがあるの.htaccessファイル。

内部のプロジェクト私のパートナーは、リンク先ページの内部でnumerusフォルダを作成するフォルダ(ちょうどindex.phpファイルをしましょう)

私が適用しようとしている書き換えルールは、言語通貨のURLパラメーターです。


したがって、たとえばこのURL: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur

次のように翻訳する必要があります。 https://www.example.com/projects/whatever-project-name/en/eur/

また、通貨変数はオプションです。(言語変数は必須変数です)

したがって、URLも次のようになります。 https://www.example.com/projects/whatever-project-name/en/


私はこの問題を解決するために、今数日探して試しています(そして泣いています)。私に近い唯一の解決策はこれです:未知のディレクトリのRewriteRule

しかし、私はそれをうまく機能させることができませんでした。

私が今まで持っているもの(しかしそれは正しく動作しません)は:

RewriteEngine On
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/([a-zA-Z0-9-]+)/?$ projects/$1index.php?lang=$2&currency=$3
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/?$ projects/$1index.php?lang=$2[L]

回答

2 RavinderSingh13 Dec 18 2020 at 01:13

表示されているサンプルに基づいて、以下を試してみてください。URLをテストする前に、ブラウザのキャッシュをクリアしてください。

RewriteEngine ON
##With currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/([\w-]+)/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en&currency=%2 [L]

##Without currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en [L]