基本上,我一直致力于修复断开的链接。旧链接可能指向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/".
"。 -
在我的一个
index.php
文件的第一行,我的doctype所在的地方,我得到了关于"Uncaught SyntaxError: Unexpected token <
"的奇怪错误。这让我认为它甚至没有将我的.php文档解释为.php文档。。。
根据我从谷歌会话中收集到的信息,这不应该发生。我的链接是绝对的(由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的语言部分不是一个真正的子目录,而是一个名称。
要修复css MIME类型,请在htaccess文件中添加以下行:
AddType text/css .css
这假设样式表文件名以.css结尾。如果没有,请将其更改为.