English 中文(简体)
How to put magento in maintenance
原标题:

Is it possible to put a magento site under an maintenance flag so that visitors will get a message that the site is under construction? I can t find this setting in the admin area.

Another solution will also be welcome.

Any help would be appreciated.

Thank you.

最佳回答

I use this often. http://inchoo.net/ecommerce/magento/maintenance-mode-in-magento/

The important part is:

Open: index.php in root and above line 57 add (remembering to edit the ‘allowed’ array to contain the IP’s you want to be able to access the site);

$ip = $_SERVER[ REMOTE_ADDR ];
$allowed = array( 1.1.1.1 , 2.2.2.2 ); // these are the IP s that are allowed to view the site.

then change the line

if (file_exists($maintenanceFile)) {

to

if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) {
问题回答

To enable maintenance mode in Magento, just create empty maintenance.flag file in the root of your Magento store.

Just add a blank file called maintenance.flag to your root.. job done

A neater solution is to use this extension.

it allow you to set the store up so that once logged into the back end you have access to the front + a few other neat features

Thats what I add to the index in order to be able to continue working from different IPs:

//EGS to show a maintenance page but be able to work
$ip = $_SERVER[ REMOTE_ADDR ];

// these are the IP s that are  allowed to view the site:
$allowed = array( 111.111.111.111 ,  222.222.222.222 );

if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) { 
    include_once dirname(__FILE__) .  /errors/503.php ;
    exit;
}

The following would work with an apache installation (need to check with others).

You could create your own custom site under maintenance html page say index.html and place it in the root directory of your installation.

Open the .htaccess folder and rename the default page from index.php to index.html. Restart Apache. Once you are done rename the default page back to index.php.

It should work.

You may check this article, it has info about puting store to the maintenance for several IPs and have some working examples and needed files:

http://blog.magalter.com/page/how-to-temporarily-block-magento-store-access-put-website-to-maintenance-mode

I followed this tutorial to put my Magento store to maintenance mode, you may try as below:

  1. Create a file name maintenance.flag in your magento root directory. Contents under this file doesn’t matter, you can keep it empty.

  2. Change the maintenance file (located in magento root -> errors -> default directory) to show proper message when user visits your website. Hop this helps

Check out this http://www.magentocommerce.com/magento-connect/all4coding-offline-maintenance-page.html it provide exactly what you are looking for. compatible with magento 1.4 - 1.8.

You can also display the maintenance page with your design theme.

Magento has maintenance.flag support built in. Check this out from

http://www.nicksays.co.uk/2010/07/enabling-magento-maintenance-mode/

I followed this tutorial http://magentoexplorer.com/how-to-show-and-customize-magento-maintenance-mode-page to enable maintenance mode page in Magento, you need to create and upload maintenance.flag file to Magento root folder, however there are some more step for a good Maintenance mode like.

  1. Add exception during maintenance (allow specific IP to visit your site during maintenance). In index.php, add these lines

    $ip = $_SERVER[ REMOTE_ADDR ]; $allowed = array( x.x.x.x , y.y.y.y );

  2. Edit maintenance mode page Edit maintenance mode page in /errors/default/503.phtml Remove wrap in /errors/default/page.phtml

Hope this helps.

If you need to put Magento in maintenance mode only in frontend, leaving admin enabled for authentication you can try these steps:

  1. Open index.php (from Magento root installation)
  2. Search for the content below (around line 63):

    if (file_exists($maintenanceFile)) {
    
  3. Replace for:

    if (file_exists($maintenanceFile) && !preg_match( /^/(admin|index.php/admin)/ , $_SERVER[ REQUEST_URI ])) {
    
  4. Create a blank file named maintenance.flag in your Magento root installation:

    $ touch maintenance.flag
    

This solution was inspired in the maintenance mode used in Opencart that uses the same behavior.

These are good modules to put your magento sites into maintenance mode anytime you want. http://www.magentocommerce.com/magento-connect/store-maintenance.html

OR

If you want fun with working on the code then create maintenance.flag file which put your site into maintenance mode. And if you want to change the template of it then goto errors/default/503.phtml file. Just change the design of it.

This is a simple solution.

Create an empty maintenance.flag file in the root of your Magento store.





相关问题
Magento addFieldToFilter allow NULLs

When using the Magento collection method addFieldToFilter is it possible to allow filtering by NULL values? I want to select all the products in a collection that have a custom attribute even if no ...

Get product link from Magento API

I am new to Magento and using their API. I need to be able to get the product url from the API call. I see that I can access the url_key and url_path, but unfortunately that s not necessarily what ...

magento extension installation

I want to install a Magento extension in WAMP, but not from the Magento connect system. How can I do this? I have the module (extension) code and I already installed the sample data in the Magento ...

Link to a specific step in onepage checkout

Is it possible to redirect the browser to nth step in the onepage checkout? If so, how would one go about doing it? I m working on a payment module and have a sort of "cancel" action that i would ...

How do I filter a collection by a YesNo type attribute?

I have a ‘featured’ attribute, which has a Yes/No select-list as the admin input. I presume that the values for Yes and No are 1 and 0, as they are for every other Yes/No list. However, if I try and ...

热门标签