1

表示されるクライアント側の URL の構造を変更したい。私は正規表現の使用と .htaccess ファイルのコーディングにあまり熟練していません。基本的に、次のような構造があります。

www.abc.com/login/?lang=es

これをアドレスバーに次のように表示したいと思います。

www.abc.com/login/es

.htaccess ファイルの既存の URL を上書きする方法を教えてください。

ありがとう

編集

私のディレクトリリスト

`

私のプロジェクト

------------- >私のアプリケーション

------------- >settings/url ディレクトリ

メディア
テンプレート`

4

1 に答える 1

2

最初に行う必要があるのは、すべてのコードを調べて、ログイン リンクを次のように変更することです。

www.abc.com/login/es

余分な接続とリダイレクトを節約できます。

次に、 www.abc.comドキュメント ルートの htaccess ファイルに/login/?lang=something、より見栄えの良い URL への要求が行われたときにクライアントをリダイレクトするルールが必要です。

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /login/?\?lang=([^&\ ]+)
RewriteRule ^ /login/%2? [L,R=301]

次に、見栄えの良い URLをクエリ文字列を持つURL内部的に書き換えるルールが必要です。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?login/(.*)$ /login/?lang=$1 [L]

ベース URI が (たとえば から/login/login/es) 変更された場合、相対リンクが引き続き正しく解決されるように、ログイン ページにベース URI を含める必要がある場合があります。これを行うには、ページのヘッダーに次のタグを追加します。

<base href="/">
于 2012-10-26T04:40:24.217 に答える