尝试通过.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/
。不完全正确。
答案 0 :(得分:3)
试试这个:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /mysite/
RewriteRule ^(?!(?:sv|en)/)(.*)$ sv/$1 [R=301,L]
需要将.htaccess文件放入 / mysite / 文件夹中。
如果在没有尾随斜杠的情况下访问localhost/mysite/sv
,规则会将其重定向到localhost/mysite/sv/sv
,因为它期望语言部分(sv
或en
)然后是斜杠/
。
<强> P.S。强>
设置一个VirtualHost - 然后通过http://localhost/mysite/sv/kontakt
访问您的网站会有更少(如果没有)这些“棘手的部分”(我相信你会同意,{{1}听起来更好看。)