Php mod_重写故障
所以我使用了一个简单的重写规则,比如:Php mod_重写故障,php,html,mod-rewrite,url-rewriting,Php,Html,Mod Rewrite,Url Rewriting,所以我使用了一个简单的重写规则,比如: RewriteEngine On RewriteRule ^foo/?$ foo.php [NC,L] 它完全重定向到foo.php,但foo.php中的所有链接和图像似乎都是从服务器上不存在的foo文件夹中获取的。例如,1.png现在是foo/1.png,index.html现在是foo/index.html。所以我的问题是:有没有办法在不改变foo.php中文件的路径的情况下使事情变得正确 访问者的浏览器将当前页面视为位于/foo/
RewriteEngine On
RewriteRule ^foo/?$ foo.php [NC,L]
它完全重定向到foo.php,但foo.php中的所有链接和图像似乎都是从服务器上不存在的foo文件夹中获取的。例如,1.png现在是foo/1.png,index.html现在是foo/index.html。所以我的问题是:有没有办法在不改变foo.php中文件的路径的情况下使事情变得正确 访问者的浏览器将当前页面视为位于
/foo/
,因此所有相关URL将在/foo/
下解析。您需要设置或更新所有相对url以指向您的站点根目录(例如,不要使用相对/path/url.jpg
,而是/relative/path/url.jpg
)。在代码中,您应该为资源(图像、css等)提供重写规则,或者为实际文件/文件夹添加条件,例如
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
第二行测试请求的URL是否指向一个实际的真实目录(即!-d部分),第二行测试它是否是一个真实的文件(!-f)
将来,通过在.htaccess文件中添加以下两行代码,您可以轻松调试mod_重写内容:
RewriteLogLevel 3
RewriteLog "/path/to/a/file.log"
2个简单的方法