6

基本的に、私が目指してきたのは、壊れたリンクを修正することです。古いリンクは を指してhttp://www.example.com/work/funkystuffいる可能性があり、それらを にリダイレクトしていhttp://www.example.com/en/work/funkystuffます。

したがって、この恐ろしい病気の症状は次のとおりです。

  1. 画像、Css、Javascript が壊れます。コンソールはResource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/en/".、タイプごとに " " を表示します。

  2. 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 の言語部分は実際のサブディレクトリではなく、名前です。

4

1 に答える 1

0

css MIME タイプを修正するには、htaccess ファイルに次の行を追加します。

AddType text/css .css

これは、スタイルシートのファイル名が .css で終わることを前提としています。そうでない場合は、変更します。

于 2012-12-07T15:04:48.430 に答える