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]
答案 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]