Question

Ok I will try and keep this as brief as possible

I have recently taken over the management of a site for a client. It was hosted on an amazon ec2 instance. I needed to migrate it from the previous administrators ec2 instance to one of my own.

I used akeeba backup and kickstart to do this and the migration appears to have worked fine however the sef urls are broken and it makes the site virtually unusable as a lot of the links appear to have been hardcoded in.

it is joomla 1.7.1 php 5.2.3 apache 2.2 running on amazon ec2 ami linux.

in joomla global conf sef urls is on but everything breaks when i turn on url rewriting. joomla generated links work with index.php in the url but any hardcoded links are broken with 404 errors.

.htaccess file name is just that .htaccess not .htaccess.txt. RewriteEngine is ON.

In my httpd.conf the only instance of mod_rewrite I can find is 'LoadModule rewrite_module modules/mod_rewrite.so' and it is uncommented. allowoverride (anytime it appears) = “AllowOverride All“ andaccessfilename = “AccessFileName htaccess“.

I have no idea what to do to try and fix this and the client is not going to be happy that half the links on his page are broken all of a sudden

any ideas? I still have the akeeba backup files so I can start over but I dont know how to set up apache to prevent the exact same thing happening again

.htaccess

##
# @version              $Id: htaccess.txt 21101 2011-04-07 15:47:33Z dextercowl$
# @package              Joomla
# @copyright    Copyright (C) 2005 - 2011 Open Source Matters. All rights reser$
# @license              GNU General Public License version 2 or later; see LICE$
##

php_value memory_limit 128M



##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but $
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it$
# beginning of line), reload your site in your browser and test your sef url's.$
# it has been set by your server administrator and you do not need it set here.
##

## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

RewriteBase /
php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value memory_limit 256M

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$$
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

edit: also I have migrated numerous other joomla sites the same way I did this one and they are working fine, the only difference being that they were migrated to solutions like rackspace cloud sites. This client insists on amazon ec2 which means I had to set up the server which I am sure is were the problem is

edit2: I just updated to 2.5.14 and have the same issue

Was it helpful?

Solution

Ok, that's not a Joomla 2.5 .htaccess file and it will give you 404's. I've created a variation on the current 2.5 version and added in your other php settings. It works on my dev machine (which your one didn't).

##
# @package      Joomla
# @copyright    Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
# @license      GNU General Public License version 2 or later; see LICENSE.txt
##

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
##

## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value memory_limit 256M

OTHER TIPS

It appears to be an .htaccess issue, but you would be getting 500 errors, not 404 if that were the case.

.htaccess directives which work on one setup can create conflicts on another, you could try to fix it manually (there may be trace of the errors in your apache error_log) or give it a shot with fasterjoomla's little helper which has several routines to try and get .htaccess working for you: http://www.fasterjoomla.com/repository/littlehelper

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top