I have set up a simple custom controller based on Alan Storm's tutorial. My controller action should be available on this URL:


But this path gives a Magento 404 error. The controller is instead found on the following path:


I don't understand why is this happening, as all of the tutorials and articles I found on the net tell me, that this should be working like that, none of them mention any extra tinkering. This problem is the same for built-in controllers too. This is a base CE 1.7 installation with sample data.

Can anyone shed some light on the matter? Thanks!

2 Answers 2


Most probably you have "Show store codes in url" set to "Yes". This explains the need for "default" in the url.
If you cannot access your controller at http://magento.localhost/default/helloworld/index/index/ it means that your mod_rewrite is not enabled or is wrongly configured. This explains the need for index.php in the url.

  • That is exactly the kind of answer I was looking for - and it is correct! Thanks! :)
    – dsplynm
    Commented Oct 30, 2013 at 9:52

I am on magento 1.8 and i fixed my 404 error by doing the following. inside Magentotutorial_Helloworld.xml they tell you to put this code in

"codePool local codePool"

since i do not have a local folder i put mine into the community folder. Change the code to this and it will work.

"codePool community codePool"

  • Local folder doesn't come by default in a stock Magento installation, you have to manually create it.
    – Prateek
    Commented Oct 14, 2015 at 8:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.