Magento Home Page Returns 404 Status Code

Posted on in System Administration

cover image for article

Naturally, I ran into this problem in the middle of the night when the client was asleep and I had no access to the Magento administrative interface. The short story is that after running a re-index of the site, the home page began returning a 404 error status. A bit of Googling indicated we were likely running into a problem where something had an empty URL rewrite that caused the home page to rewrite to a non-existant page. Due to client privacy concerns, I cannot just copy and paste the SQL queries I ran along with their output, but I will provide what I can.

First, I had to find the URL rewrite that had an empty request path. This is the one that was causing the trouble.

mysql> SELECT * FROM `enterprise_url_rewrite` WHERE request_path = '' ;

At first, I just tried to add a request path. Unfortunately, a foreign key constraint was causing me issues (ERROR 1451).

mysql> update enterprise_url_rewrite set url_rewrite_id = '/broken' where url_rewrite_id = <INTEGER> ;
-- <SNIP>
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails

So, I decided to remove the other end of the foreign key so that I could update this row and get the site fully functional again.

mysql> delete from enterprise_catalog_product_rewrite where url_rewrite_id = <INTEGER> ;
Query OK, 1 row affected (0.01 sec)

mysql> update enterprise_url_rewrite set url_rewrite_id = '/whoops' where url_rewrite_id = <INTEGER>;
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

After that I had to clear the Magento full page cache in order to get the home page working again. This site uses file storage for sessions and caching, so I just had to rm -rf var/full_page_cache (in the Magento top-level directory).

My Bookshelf

Reading Now

Other Stuff