基本的に、私が目指してきたのは、壊れたリンクを修正することです。古いリンクは を指してhttp://www.example.com/work/funkystuff
いる可能性があり、それらを にリダイレクトしていhttp://www.example.com/en/work/funkystuff
ます。
したがって、この恐ろしい病気の症状は次のとおりです。
画像、Css、Javascript が壊れます。コンソールは
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/en/".
、タイプごとに " " を表示します。Uncaught SyntaxError: Unexpected token <
ファイルの 1 行目で" " に関する奇妙なエラーが表示されます。これindex.php
は私の doctype です。これは、.php ドキュメントを .php ドキュメントとして解釈することさえしていないと私に思わせます...
私の Google セッションから集めたものから、これは起こるべきではありません。私のリンクは絶対的です (php によってエコーアウトされます)。存在しないファイルとディレクトリのみをリダイレクトする RewriteCond があります (4 行目と 5 行目)。
ええ、これは私の .htaccess のようです。
# enable awesome urls. i.e.:
# http://example.com/about-us/team
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder.
# Otherwise links will break.
#
# If your homepage is http://example.com/mysite
# Set the RewriteBase to:
#
# RewriteBase /mysite
#
RewriteBase /
# Redirect key areas of the site before localisation.
RewriteRule ^work/(.*)$ /en/work/$1 [NC,R=301,L]
RewriteRule ^news/(.*)$ /en/news/$1 [NC,R=301,L]
RewriteRule ^about/(.*)$ /en/about/$1 [NC,R=301,L]
RewriteRule ^careers/(.*)$ /en/careers/$1 [NC,R=301,L]
RewriteRule ^contact/(.*)$ /en/contact/$1 [NC,R=301,L]
RewriteRule ^update-twitter/(.*)$ /en/update-twitter/$1 [NC,R=301,L]
# redirect everything to index.php
RewriteRule ^(.*) index.php [L]
私は地獄のように混乱しているので、誰かがこれが何であるかを知っていることを願っています.
編集:さらに情報を追加する必要があると思います。
Kirby という CMS を使用しており、現在、サイトの多言語バージョンへの移行を開始しています。Kirby は、ブラウザーの言語を自動検出し、ユーザーをドメインからドメイン/言語にリダイレクトすることで、これを簡単に実行できます。
問題は、リダイレクトを使用することで事態を複雑にしているということです。URL の言語部分は実際のサブディレクトリではなく、名前です。