In Magento 1.7 and earlier versions, when you enable the “Add Store Code to Urls” feature in Configuration->Web panel there are two minor bugs that affect your web store.

  1. Changing language (store view) in frontend produce a 404 error
  2. Download links of product options file in backend does not work: redirect you to dashboard page

Solutions:

  1. Modify this file: /app/code/core/Mage/Core/Model/Url/Rewrite.php around line 252comment line:
    // $targetUrl = $request->getBaseUrl(). '/' . $this->getRequestPath();

    and substitute with this code:

                if (Mage::getStoreConfig('web/url/use_store') && $storeCode = Mage::app()->getStore()->getCode()) {
                  $targetUrl = $request->getBaseUrl(). '/' . Mage::app()->getStore()->getCode() . '/' . $this->getRequestPath(); } 
                else
                  $targetUrl = $request->getBaseUrl(). '/' . $this->getRequestPath();
  2. Modify this file: /app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php around line 526comment line:
    //$this->_getOptionDownloadUrl($urlRoute, $urlParams),

    and subsitute with this code:

                  str_replace("index.php/admin", ONE_OF_YOUR_STORE_CODE,
                              $this->_getOptionDownloadUrl($urlRoute, $urlParams)),