htaccess重写原始URL

时间:2014-09-04 20:41:19

标签: php apache .htaccess mod-rewrite redirect

我正在为我的网站创建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时重定向和重写的正确方法吗?

2 个答案:

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