2011-07-20 38 views
2

试图通过.htaccess丛林来定位自己,现在我已经将我的重写问题叙述为一个 - 在进入页面/输入一个没有这个地址的地址。.htaccess - 默认添加语言子目录“sv /”(重定向)

例如:访客类型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/。不完全正确。

回答

3

试试这个:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase /mysite/ 

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

  2. 如果访问不localhost/mysite/sv斜线,该规则将因为它期望的语言部分(sven)之后,将斜线/它重定向到localhost/mysite/sv/sv

P.S. 并着眼于建立一个虚拟主机 - 那么将通过http://localhost/mysite/sv/kontakt访问您的网站(我敢肯定你会同意,http://mysite.dev/sv/kontakt听起来并且看起来更好),这样的“棘手的部分”会少得多(如果根本没有) )。

+0

它的工作原理!非常感谢LazyOne!是的,我应该考虑设置VirtualHost,但对于本周的客户端展示,我需要让它在子目录中工作,因为实时站点也会使用该结构。 –