Problem med rena urler i subdomän

Events happening in the community are now at Drupal community events on www.drupal.org.
misc's picture

Jag har problem att få rena urler att fungera i en sajt som finns i en subdomän, det är ingen multisite installation utan allt finns under subdomänen. Sajten fungerar perfekt så länge jag inte använder rena urler, och när jag gör det med defaultinställning så får jag en 403:a, vilket då säkerligen betyder att jag pekar sajten till fel katalog. I alla fall, om någon vet vad som kan vara problemet så blir jag en lyckligare människa....

Webbservern är i en VPS-miljö (hos Ipeer)

Phpinfo finns här: http://forum.sekvenser.se/phpinfo.php

Min htaccess ser ut sår här då jag får en 403:a:

#
# Apache/PHP/Drupal settings:
#


<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

# Protect files and directories from prying eyes.
<FilesMatch ".(engine|inc|info|install|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 index.html index.htm

# 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

  # Do not cache dynamically generated pages.
  ExpiresByType text/html A1
</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 /



RewriteEngine on
RewriteBase /var/www/vhosts/sekvenser.se/subdomains/forum/httpdocs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

 

  </IfModule>

# $Id: .htaccess,v 1.90.2.3 2008/12/10 20:04:08 goba Exp $

Jag har försökt ändra RewriteBase till allt möjligt utan att lyckas....

Comments

RewriteBase är boven

TBarregren's picture

Det är RewriteBase som är boven. Du har angivit sökvägen från filsystemets rot. Du skall ange sökvägen från Apache:s rot. Låt mig förklara:

Antag att du har satt upp Apaches "main server" eller en "virtual server" så att dess dokumentrot är /var/www/vhosts/sekvenser.se. Om du packar upp Drual i denna katalog, d.v.s. så att index.php finns i /var/www/vhosts/sekvenser.se så skall du inte använda RewriteBase alls (eller ange / som bas). Om du istället har placerat drupal i /var/www/vhosts/sekvenser.se/subdomains/forum/httpdocs så skall du ange RewriteBase /subdomains/forum/httpdocs.

Lycka till!


Thomas BarregrenNodeOne

Tyvärr...

misc's picture

RewriteEngine on
RewriteBase /subdomains/forum/httpdocs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Det är en av varianterna som jag redan har prövat, det blri en 403:a på det också.

/* Mikke Schirén, https://digitalist/ */

Har du en separat virtuell

TBarregren's picture

Har du en separat virtuell server (virtual host) för forum.sekvenser.se? I så fall skall RewriteBase inte användas alls (eller vara RewriteBase /).

Hur ser konfigurationen av huvudservern och aktuell(a) virtuella servrar ut?


Thomas BarregrenNodeOne

Jag har testat med och utan

misc's picture

Jag har testat med och utan RewriteBase - och även bara med / utan något annat resultat en 403:a. När det gäller konfigurationen, vad syftar då på då? Jag är helt ny i att ha mina domäner på en VPS...

/* Mikke Schirén, https://digitalist/ */

Apache har en eller flera

TBarregren's picture

Apache har en eller flera (beroende på OS) konfigurationsfiler. Om din VPS har Debian distributionen av Linux eller en Debian baserad distribution, t.ex Ubuntu, så hittar du konfigurationsfilerna i /etc/apache2. De intressanta filerna ligger i /etc/apache2/conf.d och /etc/apache2/sites-available. Övriga filer bör du inte "pilla" på. :-) Om din VPS har en RedHat distributionen eller en RedHat baserad distribution, t.ex. Fedora och CentOS, så ligger all Apahe konfiguration i filen /etc/httpd/conf/httpd.conf (har jag för mig - vi kör Ubuntu). Om du kör Windows skall du leta upp httpd.conf i programmets katalog.

Som regel har Apache en huvudserver och flera virtuella servrar. Varje server svarar på HTTP anrop till en eller flera domännmn. Sannolikt använder du virtuella servrar, som jag därför utgår från nedan.

För att kunna hjälpa dig att lösa ditt problem behöver jag veta hur dessa servrar är konfigurerad. Mer precist är det konfigurationen av den virtuella server som svarar på anrop till forum.sekvenser.se som jag vill titta närmare på. Leta upp den fil som innehåller <VirtualHost> ... </VirtualHost> med ett ServerName eller ServerAlias med värdet forum.sekvenser.se.


Thomas BarregrenNodeOne

Ok, ingen av filerna verkar

misc's picture

Ok, ingen av filerna verkar innehålla info om forum.sekvenser.se

Det är en Ubuntu

A sites-available ligger en fil - kallad default
Den innehåller följande:

DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Ingen fil i conf-d innehåller info om forum.sekvenser.se

Bör väl kanske nämna att jag använt mig av Plesk för att sätta upp subdomänen.

/* Mikke Schirén, https://digitalist/ */

AllowOverride?

itangalo's picture

Jag har ingen koll på detta egentligen, men i går kväll fick jag för första gången min Ubuntu att gå med på rena url:er.
Jag fick hjälp från denna sida, och ett av stegen var att ändra AllowOverride None till AllowOverride all. Kanske kan det hjälpa dig också.

//Johan Falk

Plesk

zoo33's picture

Hallå! Inget konkret svar här, men om du använder Plesk så ligger subdomänens apache-inställningar inte under /etc utan i Plesk egen lilla filstruktur, nåt i stil med /usr/local/plesk/domains/{domän}/xxxxx ... Och om du ändrar nåt där så finns nog risken att Plesk skriver över ändringen en vacker dag...

Plesk har en massa specialhyss för sig så jag tror att det är större chans att hitta svaret på parallels.com än på ubuntu.com (om det är Ubuntu du kör).

Lycka till!

/ Hannes Lilljequist – SthlmConnection

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: