.htaccessで言語を切り替える

リス

ウェブサイト(PHP 7で書かれたアプリ)に別の言語を追加したい。私は、SEOの優れた慣行では、言語に応じて、サイトのすべてのページに異なるURLからアクセスできるようにする必要があることを発見しました。

現在、私の.htaccessは次のようになっています。

RewriteEngine on
Options +FollowSymLinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-z0-9-]+)$ $1.php [NC,L]

したがって、ユーザーがhttp://example.com/contact入力する(またはリンクをクリックする)と、ページcontact.php(存在する場合)が表示されます。私が達成したいのは、http: //example.com/en/contactをまったく同じファイルcontact.phpにリダイレクトすることですが、$ _ GET引数を使用し、/ contactをcontact.phpにリダイレクトします(この引数なし)。私はそれが次のようになると思いました:

... everything from above code sample and then:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^en/([a-zA-z0-9-]+)$ $1.php?lang=en [NC,L]

しかし、それは機能しません。これを機能させる理由と方法について何かアイデアはありますか?

ジャスティン・アーマン

最後の条件がen/file.php存在することを確認しますが、これは決して当てはまりません。そのため、ルールは決して満たされません。それを削除するか(ただし、存在しないファイルにも適用されます)、障害のある状態を書き換えることでこの回避策を使用します

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^en/([^/]+)$ /$1.php?lang=en [NC,L]

より完全にする/contact.php?lang=enために、直接アクセスしようとするユーザーをリダイレクトすることもできます(SEOに適しています)。最終的なhtaccessは次のようになります。

RewriteEngine On

# if url is /file.php?lang=en and file exists then redirect to /en/file
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{THE_REQUEST} \s/([^/\s\?&]+)\.php\?lang=en\s [NC]
RewriteRule ^ /en/%1? [R=301,L]

# if url is /en/file and /file.php exists then internally rewrite to /file.php?lang=en
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^en/([^/]+)$ /$1.php?lang=en [NC,L]

注:上記のコードはen言語に固有ですが、複数の言語に簡単に適応させることができます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

jinjaテンプレートで言語を切り替える

分類Dev

codeigniterエラーで言語を切り替える

分類Dev

VBAでキーボード言語を切り替える

分類Dev

PHP:手動で言語を切り替える方法は?

分類Dev

agularjs1.4.9で言語を切り替える

分類Dev

Angular 8で言語を切り替える方法はありますか?

分類Dev

i18nextプラグインで言語を切り替える方法は?

分類Dev

Ubuntu 15.10 Gnome3.16でCapsLockの入力言語を切り替える方法

分類Dev

GNOMEのCLIでキーボード言語を切り替える

分類Dev

CodeigniterはURLで言語を切り替えます

分類Dev

MarkLogic-提案の言語を切り替える方法

分類Dev

Windows7で日本語IMEを使用して入力言語を切り替える際の問題

分類Dev

入力言語を切り替えると、MicrosoftWordがフォントを切り替えます

分類Dev

Drupal 7で言語を切り替えると、ヘッダーサイズが変わります

分類Dev

Operaでデフォルト言語を切り替えることができません

分類Dev

PHPで言語を切り替えるときに現在のページにとどまる

分類Dev

PHPで言語を切り替えるときに現在のページにとどまる

分類Dev

外部ライブラリを使用せずにReactで言語を切り替える

分類Dev

Ubuntu13.10でCapsLockを使用して入力言語を切り替える方法は?

分類Dev

Ubuntu13.10でCapsLockを使用して入力言語を切り替える方法は?

分類Dev

同じページに残っている言語を切り替える

分類Dev

T-SQLテーブル値関数内で言語を切り替える方法

分類Dev

Windows7で入力言語を切り替えるためのホットキー

分類Dev

LibreOfficeでコレクター言語をすばやく切り替える方法は?

分類Dev

言語切り替え時の/ i18n / setlang /でのOperationalError

分類Dev

TYPO3v6での言語切り替え

分類Dev

laravelでの言語切り替えコントローラー

分類Dev

言語切り替えホットキーからめったに使用されない言語を削除するにはどうすればよいですか?

分類Dev

R言語:数値のケースを切り替えます

Related 関連記事

  1. 1

    jinjaテンプレートで言語を切り替える

  2. 2

    codeigniterエラーで言語を切り替える

  3. 3

    VBAでキーボード言語を切り替える

  4. 4

    PHP:手動で言語を切り替える方法は?

  5. 5

    agularjs1.4.9で言語を切り替える

  6. 6

    Angular 8で言語を切り替える方法はありますか?

  7. 7

    i18nextプラグインで言語を切り替える方法は?

  8. 8

    Ubuntu 15.10 Gnome3.16でCapsLockの入力言語を切り替える方法

  9. 9

    GNOMEのCLIでキーボード言語を切り替える

  10. 10

    CodeigniterはURLで言語を切り替えます

  11. 11

    MarkLogic-提案の言語を切り替える方法

  12. 12

    Windows7で日本語IMEを使用して入力言語を切り替える際の問題

  13. 13

    入力言語を切り替えると、MicrosoftWordがフォントを切り替えます

  14. 14

    Drupal 7で言語を切り替えると、ヘッダーサイズが変わります

  15. 15

    Operaでデフォルト言語を切り替えることができません

  16. 16

    PHPで言語を切り替えるときに現在のページにとどまる

  17. 17

    PHPで言語を切り替えるときに現在のページにとどまる

  18. 18

    外部ライブラリを使用せずにReactで言語を切り替える

  19. 19

    Ubuntu13.10でCapsLockを使用して入力言語を切り替える方法は?

  20. 20

    Ubuntu13.10でCapsLockを使用して入力言語を切り替える方法は?

  21. 21

    同じページに残っている言語を切り替える

  22. 22

    T-SQLテーブル値関数内で言語を切り替える方法

  23. 23

    Windows7で入力言語を切り替えるためのホットキー

  24. 24

    LibreOfficeでコレクター言語をすばやく切り替える方法は?

  25. 25

    言語切り替え時の/ i18n / setlang /でのOperationalError

  26. 26

    TYPO3v6での言語切り替え

  27. 27

    laravelでの言語切り替えコントローラー

  28. 28

    言語切り替えホットキーからめったに使用されない言語を削除するにはどうすればよいですか?

  29. 29

    R言語:数値のケースを切り替えます

ホットタグ

アーカイブ