.htaccess导致404错误

时间:2012-10-17 09:18:45

标签: .htaccess

Morning Stackers,

我最近继承了一个网站,我已将整个网站移到新服务器并调整了数据库和数据库。将URL配置为指向新位置。

我认为它是.htaccess,因为当我玩它时索引页面可以工作,但其他页面都没有。这是当前的.htacess脚本(下面),这里是网站Temp URL LINK - > http://83.170.113.94/~gagajool/关于如何解决这个问题的任何建议都会很有用。

谢谢

 RewriteEngine on
    Options FollowSymLinks

    RewriteCond %{REQUEST_URI} ^$
    RewriteRule ^(.+)$ / [R=301,L]

    RewriteCond %{REQUEST_URI} !^/static
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} !^/favicon.ico

    RewriteRule ^(.+[^/])$ /$1/ [R=301,L]

    RewriteCond %{REQUEST_URI} !^/static
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} !^/favicon.ico

    RewriteRule ^(.+)$ /index.php?request=$1 [QSA,L]

1 个答案:

答案 0 :(得分:0)

如果该站点暂时位于目录中,则在不考虑URI基础的情况下,htaccess将无法运行。

例如:

RewriteRule ^(.+[^/])$ /$1/ [R=301,L]

如果htaccess文件位于/~gagajool/,访问http://83.170.113.94/~gagajool/something(注意缺少的斜杠)将导致上述规则匹配,目标为/$1/,因此浏览器被重定向到http://83.170.113.94/something/(不再是~gagajool)。

与最后一条规则相同(这可能就是为什么你得到了404)。向目标添加正确的URI库,例如:

RewriteRule ^(.+[^/])$ /~gagajool/$1/ [R=301,L]

或添加:

RewriteBase /~gagajool/

并从重写规则中删除前导斜杠:

RewriteRule ^(.+[^/])$ $1/ [R=301,L]
相关问题