lhungil:
This issue is not caused by Ultimate URLs.
Please supply the ENTIRE contents of the .htaccess file (and the contents of any .htaccess files in parent directories). Based on the behavior of your site, it appears either the server has a misconfiguration or someone has added an errant RewriteRule (not following best practice, and not favorable for SEO either). This is causing the Apache web server hosting your site to incorrectly issue a "HTTP 302 / Found" without specifying the "Location" header on any URI ending with a slash.
.htaccess file as below
SetEnv DEFAULT_PHP_VERSION 5
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
compress text, HTML, JavaScript, CSS, and XML
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/js
AddOutputFilterByType DEFLATE image/jpeg
Or, compress certain file types by extension:
<Files *.html>
SetOutputFilter DEFLATE
</Files>
remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
RewriteEngine on
RewriteCond %{HTTP_HOST} ^customtables4u.com$ [NC]
RewriteRule ^(.)$ http://www.customtables4u.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^./index.html
RewriteRule ^(.*)index.html$ http://www.customtables4u.com/$1 [R=301,L]
RewriteEngine On
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1
1 WEEK 1 DAY
#<filesMatch “.(jpg|jpeg|png|gif|swf|ico)$”>
#Header set Cache-Control “max-age=691200, public”
#</filesMatch>
1 WEEK 1 DAY
#<filesMatch “.(xml|txt|js)$”>
#Header set Cache-Control “max-age=691200, proxy-revalidate”
#</filesMatch>
1 WEEK 1 DAY
#<filesMatch “.(html|htm|css|php)$”>
#Header set Cache-Control “max-age=691200, private, proxy-revalidate”
#</filesMatch>
###############################################################################
Add custom headers and options
###############################################################################
Notes:
Examples: Adding IE compatibility / edge flags, language and encoding flags,
php or suphp directives, configure other Apache modules such as page_speed,
and enable or disable Apache httpd options.
Do NOT configure anything directly relating to physical or virtual resources
in this section. These should be addressed later on in this file.
###############################################################################
#Options -Indexes
###############################################################################
Enable mod_rewrite processing using the rules in this .htaccess file
###############################################################################
Notes:
<IfModule> should be avoided at all costs. If mod_rewrite is not available
it is almost always better to return HTTP 500 status. This way we see there
is an issue as soon as the .htaccess file is uploaded.
For mod_rewrite to work, the Apache server option to allow symbolic links to
be followed must be enabled. Most providers supporting mod_rewrite will
already have it enabled for you, but if your rewrite rules are not working
you can un-comment the first directive below to manually enable the option.
Don't forget, mod_rewrite directives are processed in order until a matching
RewriteRule with the [L] flag is encountered. So the more specific a rule is
the closer it should appear to the top of this file.
###############################################################################
#Options +FollowSymLinks
RewriteEngine on
###############################################################################
Tell mod_rewrite where this file is relative to the server document_root
###############################################################################
Notes:
This directive should only be enabled if this .htaccess file is not placed
in the document_root (usually public_html, www, or web) of the (sub)domain.
An easy way to determine the location relative to the server document_root is
to look at the URL used to access a file in this folder. For example if you
access a "page" in the same folder as this file by typing in the URL
"www.mydomain.com/myfolder/index.html" then "myfolder" will be the location
of this file relative to the server document_root.
Another quick and easy way to determine the correct setting for this is to
look at the defined value for DIR_WS_CATALOG and DIR_WS_HTTPS_CATALOG in
Zen Cart's configure.php files. All three values should match.
Don't forget the leading and trailing /. This directive requires both!
###############################################################################
#RewriteBase /shop/
###############################################################################
Redirect if request was for index.php (no query)
###############################################################################
Notes:
This is only required if the site generates references to index.php with no
parameters. This rule will force a 301 redirect to the site root when a
request is made for "/index.php" with no query terms (?key=value).
###############################################################################
#RewriteCond %{QUERY_STRING} ^$
#RewriteRule ^index.php$ / [R=301,L]
###############################################################################
Add any custom 301 redirects
###############################################################################
Notes:
In general these should be few and far between. If you use a RewriteRule
be sure to add the L flag to let Apache mod_rewrite know to stop processing
and skip any RewriteRules defined later in the .htaccess file.
###############################################################################
###############################################################################
Redirect if request was for index.php (with or without query)
###############################################################################
Notes:
This is a performance optimization. If the request is for index.php simply
pass the request on and do not process any other mod_rewrite directives in
this file.
Basically this avoids the overhead of checking if index.php is a real file
or directory (used in subsequent mod_rewrite rules) before sending the
request to index.php.
###############################################################################
RewriteRule ^index.php$ - [L]
###############################################################################
Start Ultimate (SEO) URLs
###############################################################################
Notes:
You should not make any changes in this section unless you really understand
how it will impact your web site. Mistakes can break things.
###############################################################################
Handles the new URL formats
RewriteRule ^(.)-c-([0-9_]+)/(.)-p-([0-9]+)(.)$ index.php?main_page=product_info&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-c-([0-9_]+)/(.)-pi-([0-9]+)(.)$ index.php?main_page=popup_image&pID=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-c-([0-9_]+)/(.)-pr-([0-9]+)(.)$ index.php?main_page=product_reviews&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-c-([0-9_]+)/(.)-pri-([0-9]+)(.)$ index.php?main_page=product_reviews_info&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
Original (unchanged) URL formats
RewriteRule ^(.)-p-([0-9]+)(.)$ index.php?main_page=product_info&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-m-([0-9]+)(.)$ index.php?main_page=index&manufacturers_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-pi-([0-9]+)(.)$ index.php?main_page=popup_image&pID=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-pr-([0-9]+)(.)$ index.php?main_page=product_reviews&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-pri-([0-9]+)(.)$ index.php?main_page=product_reviews_info&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-ezp-([0-9]+)(.)$ index.php?main_page=page&id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.)-c-([0-9_]+)(.)$ index.php?main_page=index&cPath=$2&%{QUERY_STRING} [L]
Rewrite all other requests (if the file / directory does not exist)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?main_page=$1&%{QUERY_STRING} [L]
###############################################################################
Add any other directives relating to the handling of physical files
###############################################################################
Notes:
If processing makes it this far, the request was for a real file or folder.
Example: Adding further processing related to browser caching or security.
###############################################################################