我已经解决了通过ErrorDocument将所有uri转换为一个页面的解决方案。
这背后的原因是将文件和文件夹(不错的网址)发送到一个页面。但是,我需要将URI字符串发送到index.php?uri = string。这可以通过ErrorDocument,或者我该怎么做?
所以我需要重写
到
这有可能,如果,如何?
答案 0 :(得分:2)
如果您的服务器支持服务器端包含(SSI),那么您使用以下404.shtml
作为您的ErrorDocument:
<html>
<header>
<meta http-equiv="Refresh" content="0; url=/index.php?uri=<!--#echo var="REQUEST_URI" -->">
</header>
</html>
编辑:有一种更简单的方法:创建一个PHP文件作为你的ErrorDocument,你可以在它的阳光下做任何事情! :)
EDIT2:您可以使用$_SERVER['REQUEST_URI']
EDIT3:哎呀,如果您只是在同一主机上重定向到index.php
,您可以将index.php
文件设置为您的ErrorDocument,并通过检查是否从404错误重定向请求$_SERVER['REDIRECT_STATUS'] == '404'