我正在为我的网站创建SEO友好的URL。我有一个文件notfound.php,我正在重定向所有的URL。现在,我想notfound.php在数据库中搜索URL并生成相应的内容。
但问题是它显示的网址是http://some_url/notfound.php
我不希望这个网址显示在地址栏中,而是我想要原来的网址。
例如,
http://some_url/hello/world
使用http://some_url/notfound.php
重定向到ErrorDocument 404
和notfound.php正在提供内容
但是如何在URL中显示http://some_url/hello/world
而不是notfound.php?而且,这是在匹配数据库中的URL时重定向和重写的正确方法吗?
答案 0 :(得分:0)
你必须启用mod_rewrite,然后你可以尝试:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ notfound.php [L]
前两行确保您仍然可以加载存在的东西(例如您可能需要的js和css文件)
答案 1 :(得分:0)
当您为其提供完整的URL时,ErrorDocument会执行外部重定向。该文档告诉您如何进行内部重定向。
http://httpd.apache.org/docs/current/custom-error.html#configuration