2014-08-29 3 views
0

В настоящее время у меня есть htaccess, который удаляет index.php из URL, его работоспособность. Но теперь я хочу заставить url начать с www.htaccess force www и remove index.php

Мой текущий код:

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

Я попытался следующий код, но он не работает:

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
#RewriteRule ^(.*)$ /index.php?/$1 [L] 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI}/index.php?/$1 [R=301,L] 

Но он не работает, я использую CodeIgniter

+0

Возможный дубликат [Codeigniter htaccess для удаления index.php и www] (http://stackoverflow.com/questions/12030990/codeigniter-htaccess-to-remove-index-php-and-www) – Oberst

+1

Этот вопрос не такой , здесь я прошу не удалять www, а вместо силы для www. Пожалуйста, правильно прочитайте –

+0

Нет ... Не ТОЧНЫЙ дубликат, но ответ все еще есть. 'RewriteCond% {HTTP_HOST}^domain.com [NC] RewriteRule^(. *) $ Http://www.domain.com/$1 [L, R = 301]' – Oberst

ответ

1

Изменить порядок вашего правила и сохранить переадресацию до перезаписи правил:

DirectoryIndex index.php 
RewriteEngine on 

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 

RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 
+0

Спасибо, это сработало –

+0

Добро пожаловать, рад, что это сработало. – anubhava

Смежные вопросы