我似乎有规范问题 - 重复我的网站的索引页面显然让谷歌感到困惑。
所以我以为我会尝试.htaccess路线,我被建议使用以下代码
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^alexgreen.co.uk
RewriteRule (.*) http://www.alexgreen.co.uk/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.htm HTTP/
RewriteRule ^index.html$ http://www.alexgreen.co.uk/ [R=301,L]
但我得到的是以下信息:
“内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请与服务器管理员联系,告知他们错误发生的时间以及可能导致错误的任何操作。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。“
我可以尝试使用错误类型的服务器吗?它是一个基于linux的服务器托管1and1(我认为)但它确实允许php,mysql,perl。
有没有人有任何想法,或者我应该尝试以不同的方式做事?
提前致谢..
答案 0 :(得分:1)
这一行:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.htm HTTP/
需要将所有空格转义,否则mod_rewrite会认为^[A-Z]{3,9}
/index.htm
和HTTP/
都是不同的参数:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.htm\ HTTP/
答案 1 :(得分:0)
这是我经常使用的脚本
RewriteRule On +FollowSymLinks
#add www
RewriteCond %{HTTP_HOST} ^(alexgreen\.co\.uk)(:80)? [NC]
RewriteRule ^(.*)$ http://www.alexgreen.co.uk/$1 [R=301,L]
# Hide index.php
RewriteCond %{THE_REQUEST} \/index.html\ HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]
idk如果你想要index.html或index.htm,因为这也会导致问题没有指明要使用哪个。在你的脚本中你使用了两者。