Как перейти с example.com/en на example.com/en/ с помощью htaccess? - PullRequest
1 голос
/ 24 января 2012

Я застрял, пытаясь написать правило перезаписи для моего файла htaccess, которое должно быть перенаправлено, например, с www.example.com/en на www.example.com/en/

Я пытался: RewriteRule ^en/?$ en [L]но ничего не происходитУ кого-нибудь есть идеи, как этого добиться?

Ответы [ 2 ]

1 голос
/ 24 января 2012

Вы можете использовать следующие правила в вашем файле .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]
0 голосов
/ 24 января 2012

Использование RedirectMatch :

RedirectMatch Permanent ^/en$ /en/
...