.htaccess不能在linux服务器1上运行,但在服务器2上运行吗?

时间:2010-10-13 18:40:59

标签: .htaccess mod-rewrite

我已经制作了一个.htaccess,我已经在所有主机上使用过,直到这个将index.html重写为根域。

这是代码

Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.domain.co.uk/ $1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.domain.co.uk/ $1 [R=301,L]

RewriteEngine on
RewriteBase /
RewriteRule ^index\.(htm|html|php) http://www.domain.co.uk/ [R=301,L]
RewriteRule ^(.*)/index\.(htm|html|php) http://www.domain.co.uk/$1/ [R=301,L] 
RewriteCond %{HTTP_HOST} ^domain\.co.uk 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=permanent,L]

但是它仍然无法在vidahost.com上运行,因为它们仍然被认为是相同的服务器而且这个代码已经在服务器上工作多年了所以我怀疑这是一个过时的服务器升级问题。

他们也做不到,我被困住了。所有的帮助都提前感谢。

2 个答案:

答案 0 :(得分:0)

这可能是Apache配置问题 - 必须允许您在主Apache配置中使用mod_rewrite。

此外,RewriteEngine通常应该在任何其他mod_rewrite命令之前,但如果它之前适用于你,可能这不是问题。

答案 1 :(得分:0)

首先,您应该发布虚拟主机配置,还可以启用模式重写调试。

RewriteLog path-to-log-file
RewriteLogLevel number-0-9- /zero is disabled/

它可以帮助您找出错误。