以前在 codeigniter 3.1.2 中工作的 .htaccess 在尝试 prerender.io 后无法工作

Previously working .htaccess in codeigniter 3.1.2 not working after trying prerender.io

我在 .htaccess 文件中使用了以下配置:

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

运行正常,一进入www.my-site.com.

就显示首页

然后我尝试使用 link: https://gist.github.com/thoop/8072354 中提供的 .htaccess 文件在 codeigniter 中实现 prerender.io。新的.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/ [P,L]
  </IfModule>
</IfModule>

我也尝试了 post 下方@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}/ [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 共享主机服务,我知道他们支持 mod-rewrite。

我不想prerender.io了。在尝试新的(prerender.io 版本).htaccess 时我启用或禁用了什么?我该怎么做才能让 "previous state" 恢复正常工作?

我尝试在网上搜索类似问题,但没有找到任何与我的问题相关的内容。

更新:

我尝试在本地 lampp 服务器上使用第一个(以前工作的).htaccess 文件,它可以正常工作,但它仍然无法在 Bluehost 服务器上工作。

更新二:

我今天的一个有趣发现。当我检查我的站点(地址:northernschoolofmusic.com.cp-in-13.webhostbox.net)在 Google 上的速度时,页面呈现正确。但是当我在浏览器中访问上面提到的 link 时,我立即被重定向到 http://northernschoolofmusic.com.cp-in-13.webhostbox.net/cgi-sys/defaultwebpage.cgi .

使用这个 htaccess -

RewriteEngine on
RewriteCond  !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA] 

配置设置应该是这样的

$config['base_url'] = 'http://www.my-site.com/';
$config['index_page'] = '';

请按照此操作进行操作...

问题最终出在互联网连接上。 Internet 提供商可能错误地保存了 DNS,并重定向到错误的缓存页面。 更改浏览器或连接提供商是解决方案!