Я использовал следующую конфигурацию в файле .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
Он работал нормально, и домашняя страница была отображена, как только я зашел на www.my-site.com.
Затем я попытался реализовать prerender.io в codeigniter, используя файл .htaccess, предоставленный по этой ссылке: https://gist.github.com/thoop/8072354. Новый файл .htaccess выглядит следующим образом:
<IfModule mod_headers.c>
RequestHeader set X-Prerender-Token "MY_TOKEN"</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
<IfModule mod_proxy_http.c>
RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_
RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://service.prerender.io/http://www.my-site.com/$2 [P,L]
</IfModule>
</IfModule>
Я также попробовал комментарий @benceg чуть ниже поста, но это также не сработало:
RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent))(index\.php)?(.*) http://service.prerender.io/%{REQUEST_SCHEME}://%{HTTP_HOST}/$3 [P,L]
Вышеупомянутый файл .htaccess не работал, и еще хуже, когда я заменил свой предыдущий (упомянутый в начале) полностью рабочий файл .htaccess обратно, он также не работал.
Когда я зашел на сайт www.my-site.com, он показал мне «Сайт в разработке».
Затем я попробовал www.my-site.com/mycontroller и, к моему удивлению, показывали мою домашнюю страницу. Это ясно указывает на то, что мой файл .htaccess (который ранее полностью работал) теперь «частично» работает.
Но снова, когда я попробовал www.my-site.com, он показал «Сайт в разработке».
Некоторые конфигурации codeigniter, которые у меня есть в настоящее время:
$config['base_url'] = 'http://www.my-site.com/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$route['default_controller'] = 'mycontroller';
Я пользуюсь сервисом Bluehost Shared Hosting и знаю, что они поддерживают перезапись модов.
Я не хочу prerender.io больше. Что я включил или отключил при попытке нового (prerender.io версия) .htaccess? Что я могу сделать, чтобы вернуть полностью работающее «предыдущее состояние»?
Я пытался найти в сети похожие проблемы, но не нашел ничего конкретного для моей проблемы.
Обновить:
Я попытался использовать первый (ранее работающий) файл .htaccess на локальном сервере lampp, и он работает как обычно, но все еще не работает на сервере Bluehost.
Обновление 2:
Интересная находка, которую я сделал сегодня. Когда я проверяю скорость моего сайта (адрес: northschoolofmusic.com.cp-in-13.webhostbox.net) в Google, страница отображается правильно. Но когда я получаю доступ к вышеупомянутой ссылке в браузере, я сразу же перенаправляюсь на http://northernschoolofmusic.com.cp-in-13.webhostbox.net/cgi-sys/defaultwebpage.cgi .
Наконец, проблема была в подключении к интернету. Интернет-провайдер, возможно, неправильно сохранил DNS и перенаправил его на неверную кэшированную страницу.
Смена браузера или провайдера подключения была решением!
используйте этот htaccess —
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
и настройки конфига должны быть такими
$config['base_url'] = 'http://www.my-site.com/';
$config['index_page'] = '';
пожалуйста, следуйте этому, это будет работать …