-1

I have migrated a site from one server to another and the page just refuses to work.

I have all modules enabled as on the old server, .htaccess is present in the root folder yet when i access the site through URL i get

The requested page could not be found. 

when i add 'q' param like so: /?q=user

I get the user login screen however when i try to log in i get access denied.

apache error logs are clear. The configuration looks like this:

<VirtualHost *:80>
        DocumentRoot /var/www/

        <Directory "/var/www/site/">
                Options +Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>      
</VirtualHost>

running Apache2.4

.htaccess

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
  Order allow,deny
</FilesMatch>

# Don't show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Make Drupal handle any 404 errors.
#ErrorDocument 404 /index.php

# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
  # There is no end quote below, for compatibility with Apache 1.3.
  ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>

# Set the default handler.
DirectoryIndex index.php
#DirectoryIndex phpinfo.php
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.

# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On

  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600

  <FilesMatch \.php$>
    # Do not allow PHP scripts to be cached unless they explicitly send cache
    # headers themselves. Otherwise all scripts would have to overwrite the
    # headers set by mod_expires if they want another caching behavior. This may
    # fail if an error occurs early in the bootstrap process, and it may cause
    # problems if a non-Drupal PHP file is installed in a subdirectory.
    ExpiresActive Off
  </FilesMatch>
</IfModule>

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on

  # If your site can be accessed both with and without the 'www.' prefix, you
  # can use one of the following settings to redirect users to your preferred
  # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
  #
  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/... will be redirected to http://www.example.com/...)
  # adapt and uncomment the following:
  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
  #
  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment and adapt the following:
  # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

  # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line:
  # RewriteBase /drupal
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # RewriteBase /

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Tried to access admin sections for clear urls but i get access denied - i just can not access any page really. Not sure if there is anything i can do via DB.

EDIT:

This is very interesting find - it turned out that the database encoding was wrong.. So i had to drop the cluster and recreate it with correct encoding (and that meant changing machine locale). The DB encoding was LATIN but its supposed to be UTF-8. After doing so everything works as expected.

1

Probably this is because clean urls are enabled. After you logged in at ?q=user/login go to ?q=admin/config/search/clean-urls and check if you have clean urls working (you should see a checkbox appear). Otherwise check the following.

  • check if rewrite_module is enabled
  • check if .htacces files exists in root dir
  • check contents of .htacess for rewriting
  • check permission of .htaccess
  • check if AllowOverride is set to all. AllowOverride all
  • So the clean-urls checkbox is set to Dissable (when clicked on Enable and save it reverts back to Dissable even though it says configuration save). .htaccess is present and there is rewrite content - read question. Permissions are 755 on .htaccess(overkill but sufficient). allow override set to all again read the question – Maciej Cygan Apr 3 '17 at 12:23
  • do you have it overridden in your settings.php file somewhere by setting $conf['clean_url'] = 0;? – undersound Apr 3 '17 at 12:34
  • perhaps also check this page drupal.org/docs/7/configuring-clean-urls/enable-clean-urls – undersound Apr 3 '17 at 12:35
  • It seems like i had this enabled in settings.php probably from my earlier trials. That now removed, and clean url enabled i still get page not found on every single page -including the main page – Maciej Cygan Apr 3 '17 at 12:40
  • what happens when you disable clean urls (let it stay disabled) and clear all your caches? – undersound Apr 3 '17 at 12:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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