从站点资产URL中删除语言slug

时间:2017-03-06 11:00:54

标签: regex apache .htaccess mod-rewrite url-rewriting

我需要一些关于htaccess的帮助

我有网站结构:

root
-- /script
-- /css
-- /images
-- /en
-- /en/contact.html
-- /de
-- /de/kontakten.html

1。 我希望如果没有 / en / de 添加到example.com,那么它应该重定向到 example.com/en

2。 链接应该可以访问 的 example.com/en/contact

RewriteEngine on
RewriteBase /
#1
RewriteCond %{REQUEST_URI} !\/(de|en)
RewriteRule ^(.*)$ http://www.example.com/en/$1 [R]
#2
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} [^/]$
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
#3
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} (\/de|\/en)
RewriteRule (\/de|\/en) / [L]

现在的问题是.css,.js,图片有这样的链接 http://www.example.com / EN /script/functions.js (已添加 / en / de

有人知道如何从资产网址中删除/ en,/ de吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在第一个RewriteCond之后添加此规则:

RewriteCond %{REQUEST_FILENAME} !-f