简体   繁体   中英

htaccess to rewrite the original URL

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM