Я пытаюсь добавить www и перенаправить все URL-адреса, отличные от www, на www urls в проекте, основанном на кодеригере, но после этого мои почтовые данные не работают. Вот содержимое файла Apache .htaccess
:
RewriteCond %{HTTP_HOST} ^examplesite\.com$ [NC] RewriteRule ^(.*)$ http://www.examplesite.com/$1 [R=301,L]
У меня есть $config['uri_protocol'] = 'AUTO';
,
Все работает как шарм, если у меня нет URL-адресов. Я попробовал REQUEST_URI
, но это тоже не сработало.
Это связано с тем, что браузеры не будут повторно отправлять данные POST, если ответ является перенаправлением. Это нормальная и ожидаемая вещь. Что вы можете сделать, так это только переписать запросы GET с дополнительным условием:
RewriteCond %{REQUEST_METHOD} GET [NC] RewriteCond %{HTTP_HOST} ^examplesite\.com$ [NC] RewriteRule ^(.*)$ http://www.examplesite.com/$1 [R=301,L]
Оставьте параметр $config['site_url']
в application/config/config.php
пустой строкой (которая сделает CI автоматически autodetect), а в вашем коде просмотра используйте помощник site_url()
или функции компоновщика форм, чтобы он используйте домен, к которому пришел запрос.