Перенаправление не из WWW в WWW с использованием файла htaccess - PullRequest
0 голосов
/ 28 февраля 2011

Я использую Codeigniter-. Мой домен в настоящее время не перенаправляет на www версию.

Например, если я наберу mydomain.com, то оно останется mydomain.com. Я хочу перенаправить его на www.mydomain.com.

Если кто-то наберет mydomain.com/controller/method, тогда оно должно быть www.mydomain.com/controller/method.

Еще одна проблема: я уже пробовал другие решения, но проблема в том, что при перенаправлении на www версию автоматически добавляется «index.php» в URL. Но когда я набираю www в доменном имени, это работает нормально, в URL-адресе нет "index.php". Эта проблема возникает только во время перенаправления.

Вот мой .htaccess файл (я удалил код перенаправления)

RewriteCond $1 !^(index\.php|system|rpc_relay.html|canvas.html|robots\.txt)
RewriteCond $1 !^(sitemap\.xml|export)
RewriteRule ^(.*)$ /index.php/$1 [L]

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

2 голосов
/ 23 марта 2012

Для перенаправления с http:// на http://www., а также удалите файл маршрута (index.php) в URL, поместите эти строки в свой htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond $1 !^(index\.php|images|css|js|styles|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

домен:

domain.com

папка с прямым доступом:

images|css|js|styles

надеюсь, что эта помощь

0 голосов
/ 23 марта 2012

Я не знаю, почему существуют такие сложные ответы RewriteRules, хотя Гоби предоставил хорошее общее решение (= независимо от имени домена, оно работает).Вот мое решение.

<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
  RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

  RewriteRule (.*)/index\.php$ $1/ [QSA]
</IfModule>
0 голосов
/ 28 февраля 2011

Чтобы перенаправить domain.com в www.domain.com, вы можете использовать следующее правило перезаписи.Пожалуйста, замените domain.com на ваше собственное доменное имя.

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
0 голосов
/ 28 февраля 2011

Ранее я использовал следующее:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  RewriteCond %{HTTP_HOST} (.+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>
...