.htaccess - 默认添加语言子目录“sv /”(重定向)

时间:2011-07-20 21:03:09

标签: .htaccess mod-rewrite

尝试通过.htaccess丛林定位自己,我现在将我的重写问题解释为一个 - 在进入页面时添加语言后缀/输入没有这样的地址。

例如:访问者输入mysite.com/kontakt。这应该将它们带到网站的默认语言,即mysite.com/sv/kontakt。或者,只需输入mysite.com即可将他/她带到mysite.com/sv/

我正在使用MAMP在本地开发此站点,并且该站点位于子目录中,这是一个棘手的部分......如何在.htaccess文件中对此进行排序?

目前使用的代码:

RewriteBase /mysite/  
RewriteCond %{REQUEST_URI} !^(sv|en)  
RewriteRule ^(.*)$ sv/$1 [L,R=301]

这使我从localhost/mysite/转到localhost/sv/。不完全正确。

1 个答案:

答案 0 :(得分:3)

试试这个:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /mysite/

RewriteRule ^(?!(?:sv|en)/)(.*)$ sv/$1 [R=301,L]
  1. 需要将.htaccess文件放入 / mysite / 文件夹中。

  2. 如果在没有尾随斜杠的情况下访问localhost/mysite/sv,规则会将其重定向到localhost/mysite/sv/sv,因为它期望语言部分(sven)然后是斜杠/

  3. <强> P.S。 设置一个VirtualHost - 然后通过http://localhost/mysite/sv/kontakt访问您的网站会有更少(如果没有)这些“棘手的部分”(我相信你会同意,{{1}听起来更好看。)