I am creating SEO friendly URLs for my website. I have a file notfound.php to which I am redirecting all the URLs. Now, I want notfound.php to search for the URL in database and generate the corresponding content.
But the problem is that in the URL it shows is http://some_url/notfound.php
I don't want this URL to be displayed in the address bar, instead I want the original one.
For example,
http://some_url/hello/world
is redirecting to http://some_url/notfound.php
using ErrorDocument 404
and notfound.php is serving the content
But how to show http://some_url/hello/world
in the URL instead of notfound.php? And, is this the right way to redirect and rewrite while matching the URLs from a database?
you must have mod_rewrite enabled, then you can try:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ notfound.php [L]
the first two lines ensure that you can still load things that exist (like js and css files that you may need)
ErrorDocument does an external redirect when you give it a complete URL. The doc tells you how to do an internal redirect.
http://httpd.apache.org/docs/current/custom-error.html#configuration
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.