.htaccess 动态404页。。有点
好吧,这就是我想要实现的 如果服务器返回404,我希望能够将URL数据发送到php文件 例如:.htaccess 动态404页。。有点,.htaccess,url-rewriting,.htaccess,Url Rewriting,好吧,这就是我想要实现的 如果服务器返回404,我希望能够将URL数据发送到php文件 例如: example.com/stackoverflow 将显示一个动态404页面 (404.php?id=stackoverflow) 但我不是在404中使用它。在我的情况下,我想在domain.com/之后发送数据 这样我就可以从数据库中提取并相应地显示内容 我知道这可以通过在.htaccess中进行一个小的重写来完成,regex对我来说太混乱了 我不想要重定向 http://example.co
example.com/stackoverflow
将显示一个动态404页面
(404.php?id=stackoverflow)
但我不是在404中使用它。在我的情况下,我想在domain.com/之后发送数据
这样我就可以从数据库中提取并相应地显示内容
我知道这可以通过在.htaccess中进行一个小的重写来完成,regex对我来说太混乱了
我不想要重定向
http://example.com/datahere
应显示以下数据:
404.php?id=datahere
您可以使用
ErrorDocument
指令将404 URI重定向到/404.php
如下所示:
ErrorDocument 404 /404.php?id=%{REQUEST_URI}
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /404.php?id=$1 [L]
这将把/datahere
重写为/404.php?id=datahere
(/datahere
将显示/404.php?id
的内容)
请注意,上面的指令在apache版本bellow 2.4上不起作用,因为mod rewrite变量%{REQUEST_URI}
在较低版本上被视为纯文本而不是变量
在Apache2.2上,您可以使用mod rewrite将不存在的请求重写到404。使用以下命令:
ErrorDocument 404 /404.php?id=%{REQUEST_URI}
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /404.php?id=$1 [L]