我在.htaccess文件中使用了以下配置:
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
工作正常,我一进入www.my-site.com就显示主页。
然后我尝试使用此链接中提供的.htaccess文件在codeigniter中实现prerender.io: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服务,我知道它们支持mod-rewrite。
我不再需要prerender.io了。尝试新的(prerender.io版本).htaccess时我启用或禁用了什么?我能做些什么来让我完全工作?#34;之前的状态&#34;回来?
我试图在网上搜索类似的问题,但没有找到任何与我的问题有关的内容。
更新
我尝试在本地lampp服务器上使用第一个(以前正在运行的).htaccess文件,它正常工作,但它仍无法在Bluehost服务器上运行。
更新2:
我今天发现了一个有趣的发现。当我在Google上查看我的网站(地址:northernschoolofmusic.com.cp-in-13.webhostbox.net)时,页面正在正确呈现。但是当我在浏览器中访问上述链接时,我立即被重定向到http://northernschoolofmusic.com.cp-in-13.webhostbox.net/cgi-sys/defaultwebpage.cgi。
答案 0 :(得分:0)
使用此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'] = '';
请按照此方式工作......
答案 1 :(得分:0)
问题终于是互联网连接。 Internet提供商可能已错误地保存DNS并重定向到错误的缓存页面。 更改浏览器或连接提供商是解决方案!