以前在 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,并重定向到错误的缓存页面。
更改浏览器或连接提供商是解决方案!
我在 .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,并重定向到错误的缓存页面。 更改浏览器或连接提供商是解决方案!