Hi all!
I've a serius problem with clean url's.
When I run the clean url test, theme was lost, with url http://www.site.com/admin/settings/clean-urls
Enabling clean url at this point, click on "save configuration", and the "administration theme" page is loaded, with url http://www.site.com/admin/settings/admin/settings/clean-urls

Then, if i click on "home" in the breadcrumb, page rimains the same (admin theme) and the url is http://www.site.com/admin/settings/admin/

If I click on "save configuration", url becomes http://www.site.com/admin/settings/admin/settings/admin/settings/admin/s...
and so on....

this is my .htaccess

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.

Order allow,deny

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

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.

# PHP 4, Apache 1.

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# PHP 4, Apache 2.

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# PHP 5, Apache 1 and 2.

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# Requires mod_expires to be enabled.

# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
# Do not cache dynamically generated pages.
ExpiresByType text/html A1

# Various rewrite rules.

RewriteEngine on

# If your site can be accessed both with and without the prefix www. you
# can use one of the following settings to force user to use only one option:
#
# If you want the site to be accessed WITH the www. only, adapt and
# uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule .* http://www.example.com/ [L,R=301]
#
# If you want the site to be accessed only WITHOUT the www. prefix, adapt
# and uncomment the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule .* http://example.com/ [L,R=301]

# Modify the RewriteBase if you are using Drupal in a subdirectory and
# the rewrite rules are not working properly.
#RewriteBase /

# Rewrite old-style URLs of the form 'node.php?id=x'.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^id=([^&]+)$
#RewriteRule node.php index.php?q=node/view/%1 [L]

# Rewrite old-style URLs of the form 'module.php?mod=x'.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
#RewriteRule module.php index.php?q=%1 [L]

# Rewrite current-style URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

# $Id: .htaccess,v 1.81 2007/01/09 09:27:10 dries Exp $

uncomment rewritebase does not change anything.

Please help!!!

Comments

enxox’s picture

seem that the rewrite engine adds admin/setting in the base_path and everywhere....

theme source path becomes

@import "/admin/settings/modules/system/admin.css";

instead of

@import "/modules/system/admin.css";

i cannot find a way to solve....

lordgilman’s picture

Running drupal 5.1 here, same problem and working on a fix. This seems to happen regardless of the theme, and I think there's something up with base_path(). I looked around in the drupal 5 api and both drupal_get_css() and drupal_get_js() both use it and it keeps on returning whatever directory you're in (for example, if I go to /user/3.14 it looks like base_path() is returning /user.

I have set the one setting in the .htaccess file for base paths, but that still isn't helping the bug. Should I just change the function in common.inc just to export '/' ? That's one quick fix I can think of.

I've also got some javascript files that have the same wrong URL information in the header, ex the Drupal.extend line:

<script type="text/javascript">Drupal.extend({ settings: { "jstools": { "cleanurls": false, "basePath": "/user/" }, "activemenu": { "#block-menu-1": "activemenu/menu", "#block-user-1": "activemenu/menu" }, "collapsiblock": {  } } });</script>

note that drupal_get_js says cleanurls isn't on and basepath is /user/ for that stuff too

enxox, i'd be glad to discuss this in IRC/email with you if necessary. It seems the marvin/chameleon themes are just kinda buggy.

lordgilman’s picture

I've got the problem tracked down. Very nice.

Just change the $base_url variable in /sites/whatever/settings.php. I got the advice from this forum page on Lunarpages' support forum.

I know my server is running PHP 5.2 with Apache 1.3.37 and suPHP, perhaps this needs to be noted somewhere in the drupal handbook (or on the API page for base_path?

enxox’s picture

Hi lordgilman, thanks for the message.
I've already tryied the base url thing, but this not solve my issue....

mkelley’s picture

enxox- I'm having the same problem on a fresh install of 5.1.....and am hoping that you might have discovered a solution.
(setting the base path in the settings.php file doesn't solve it for me)

-thanks

mkelley’s picture

Never mind...changing the base url in the settings.php file DOES work.

What doesn't work is trying to ftp over the top of a read only file :)

asund’s picture

Thank you all so much for clearing this up!