Magento setup in root folder and htaccess

Discussion in 'General' started by provell, Jan 7, 2010.

  1. provell

    provell New Member

    Hi,

    I'm trying to setup Magent(webshop) in the root of the website but I'm having trouble with the .htaccess file.

    Reading through the forum the solution seems to be to put an apache directive like this in ISCconfig for the particular website:
    <Directory /var/www/web5/web/magento/>
    AllowOverride All
    </Directory>

    If I setup magento in the subdirectory ../megento/ and use the apache directive everything works ok.
    But if I setup magento in the root of the website in ../web/ I get an access error.

    I then of course use this as directive:
    <Directory /var/www/web5/web/>
    AllowOverride All
    </Directory>

    If I then tweak the .htaccess file and comment the modules mod_php5.c, mod_ssl.c and mod_rewrite.c out I do get access to the site only other access errors remain after setup(image upload for example).
    I have given every file and directory 777 to be sure that is not the problem.

    Looks like some kind of directoy pointer or what I should call it.

    Anybody any thought or experiance with magento?
    Thanks up front for any info.

    Rgds Edo

    ps. I tried coping and pasting the whole .htaccess file into the apache directive field but that did not work either.
     
  2. falko

    falko Super Moderator Howtoforge Staff

    Are there any errors in the Apache error log of that web site (it's in/var/www/web5/log/)?
     
  3. provell

    provell New Member

    .htaccess errors

    Hi,

    Yes there are error messages.
    If I use the .htaccess file where I commented out the some stuff I get:
    ..../.htaccess: options not allowed here

    If I use the one(out of the box) that works in the subdirectory /magento/ I get:
    ..../.htaccess: PHP value not allowed here.

    Unfortunatly not something like, line 20 or anything more specific.

    The .htaccess file contains the following mod_rewrite option:
    #Rewritebase /magento/

    It is commented out by default and can be used if you want to use a different directory than the subdirectory of /magento/.
    Unfortunalty I have to comment out the whole mod_rewrite part to get it to work in the root of the website in the first place.

    If don't comment out anything and use the Rewritebase option it doesn't work either.
    I have used the / and /web/ but no luck, even the full path from the real root does not make a difference.
    Using only the RewriteBase option in the mod_rewrite part leaves me with the same errors and the log says: PHP value not allowed here

    Any option left to see what is not allowed?

    Rgds Edo
     
  4. falko

    falko Super Moderator Howtoforge Staff

    Can you post the full .htaccess file here?
     
  5. provell

    provell New Member

    .htaccess

    Hi,

    Thanks for the help by the way.

    I did some more testing and I think the apache directive(AllowOverride All) is completely ignored on the root web folder.
    That is probably the reason I have to edit the .htacces file.
    I managed to get magento running in a subfolder /shop/ this could be plan B.

    Anyway, here is the complete .htaccess file

    ############################################
    ## uncomment these lines for CGI mode
    ## make sure to specify the correct cgi php binary file name
    ## it might be /cgi-bin/php-cgi

    # Action php5-cgi /cgi-bin/php5-cgi
    # AddHandler php5-cgi .php

    ############################################
    ## GoDaddy specific options

    # Options -MultiViews

    ## you might also need to add this line to php.ini
    ## cgi.fix_pathinfo = 1
    ## if it still doesn't work, rename php.ini to php5.ini

    ############################################
    ## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

    ############################################
    ## default index file

    DirectoryIndex index.php

    #'<IfModule mod_php5.c>

    ############################################
    ## adjust memory limit

    # php_value memory_limit 64M
    #' php_value memory_limit 128M
    #' php_value max_execution_time 18000

    ############################################
    ## disable magic quotes for php request vars

    #' php_flag magic_quotes_gpc off

    ############################################
    ## disable automatic session start
    ## before autoload was initialized

    #' php_flag session.auto_start off

    ############################################
    ## enable resulting html compression

    #php_flag zlib.output_compression on

    ###########################################
    # disable user agent verification to not break multiple image upload

    #' php_flag suhosin.session.cryptua off

    ###########################################
    # turn off compatibility with PHP4 when dealing with objects

    #' php_flag zend.ze1_compatibility_mode Off

    #'</IfModule>

    <IfModule mod_security.c>
    ###########################################
    # disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
    </IfModule>

    <IfModule mod_deflate.c>

    ############################################
    ## enable apache served files compression
    ## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

    </IfModule>

    #'<IfModule mod_ssl.c>

    ############################################
    ## make HTTPS env vars available for CGI mode

    #' SSLOptions StdEnvVars

    #'</IfModule>

    #'<IfModule mod_rewrite.c>

    ############################################
    ## enable rewrites

    #' Options +FollowSymLinks
    #' RewriteEngine on

    ############################################
    ## you can put here your magento root folder
    ## path relative to web root

    #RewriteBase /magento/


    ############################################
    ## workaround for HTTP authorization
    ## in CGI environment

    #' RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    ############################################
    ## always send 404 on missing files in these folders

    #' RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

    ############################################
    ## never rewrite for existing files, directories and links

    #' RewriteCond %{REQUEST_FILENAME} !-f
    #' RewriteCond %{REQUEST_FILENAME} !-d
    #' RewriteCond %{REQUEST_FILENAME} !-l

    ############################################
    ## rewrite everything else to index.php

    #' RewriteRule .* index.php [L]

    #'</IfModule>


    ############################################
    ## Prevent character encoding issues from server overrides
    ## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

    <IfModule mod_expires.c>

    ############################################
    ## Add default Expires header
    ## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"

    </IfModule>

    ############################################
    ## By default allow all access

    Order allow,deny
    Allow from all

    ############################################
    ## If running in cluster environment, uncomment this
    ## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none
     
  6. provell

    provell New Member

    original .htaccess file

    It seems I posted the adjusted .htaccess file.
    Here is the one that comes with magento out of the box.

    ############################################
    ## uncomment these lines for CGI mode
    ## make sure to specify the correct cgi php binary file name
    ## it might be /cgi-bin/php-cgi

    # Action php5-cgi /cgi-bin/php5-cgi
    # AddHandler php5-cgi .php

    ############################################
    ## GoDaddy specific options

    # Options -MultiViews

    ## you might also need to add this line to php.ini
    ## cgi.fix_pathinfo = 1
    ## if it still doesn't work, rename php.ini to php5.ini

    ############################################
    ## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

    ############################################
    ## default index file

    DirectoryIndex index.php

    <IfModule mod_php5.c>

    ############################################
    ## adjust memory limit

    # php_value memory_limit 64M
    php_value memory_limit 128M
    php_value max_execution_time 18000

    ############################################
    ## disable magic quotes for php request vars

    php_flag magic_quotes_gpc off

    ############################################
    ## disable automatic session start
    ## before autoload was initialized

    php_flag session.auto_start off

    ############################################
    ## enable resulting html compression

    #php_flag zlib.output_compression on

    ###########################################
    # disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off

    ###########################################
    # turn off compatibility with PHP4 when dealing with objects

    php_flag zend.ze1_compatibility_mode Off

    </IfModule>

    <IfModule mod_security.c>
    ###########################################
    # disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
    </IfModule>

    <IfModule mod_deflate.c>

    ############################################
    ## enable apache served files compression
    ## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

    </IfModule>

    <IfModule mod_ssl.c>

    ############################################
    ## make HTTPS env vars available for CGI mode

    SSLOptions StdEnvVars

    </IfModule>

    <IfModule mod_rewrite.c>

    ############################################
    ## enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

    ############################################
    ## you can put here your magento root folder
    ## path relative to web root

    #RewriteBase /magento/


    ############################################
    ## workaround for HTTP authorization
    ## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    ############################################
    ## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

    ############################################
    ## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    ############################################
    ## rewrite everything else to index.php

    RewriteRule .* index.php [L]

    </IfModule>


    ############################################
    ## Prevent character encoding issues from server overrides
    ## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

    <IfModule mod_expires.c>

    ############################################
    ## Add default Expires header
    ## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"

    </IfModule>

    ############################################
    ## By default allow all access

    Order allow,deny
    Allow from all

    ############################################
    ## If running in cluster environment, uncomment this
    ## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none
     
  7. falko

    falko Super Moderator Howtoforge Staff

    Did you try
    Code:
    <Directory /var/www/web5/web/>
    AllowOverride All
    </Directory>
    in the Apache Directives field in ISPConfig?
     

Share This Page