如何使用htaccess从example.com/en转发到example.com/en/?

时间:2012-01-24 01:59:34

标签: .htaccess rewrite

我很难为我的htaccess文件编写重写规则,该规则应该从www.example.com/en转发到www.example.com/en /

我试过了:RewriteRule ^en/?$ en [L] 但没有任何反应。有人知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

您可以在.htaccess文件中使用以下规则:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?![^/]*/).*$ %{REQUEST_URI}/ [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/$ index.php?lang=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/([^/]*)/?$ index.php?action=$2&lang=$1 [QSA,L]

这将:

  • 从外部重定向/en/en/在内部重定向,这到/index.php?lang=en
  • 内部重定向/fr/login/index.php?action=login&lang=fr

此外:根据您的评论,您需要此规则才能在域中添加www:

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

使用RedirectMatch

RedirectMatch Permanent ^/en$ /en/