Posted by misc on May 17, 2009 at 9:54am
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
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å attindex.phpfinns i/var/www/vhosts/sekvenser.seså skall du inte användaRewriteBasealls (eller ange/som bas). Om du istället har placerat drupal i/var/www/vhosts/sekvenser.se/subdomains/forum/httpdocsså skall du angeRewriteBase /subdomains/forum/httpdocs.Lycka till!
Thomas Barregren – NodeOne
Tyvärr...
RewriteEngine onRewriteBase /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
Har du en separat virtuell server (virtual host) för forum.sekvenser.se? I så fall skall
RewriteBaseinte användas alls (eller varaRewriteBase /).Hur ser konfigurationen av huvudservern och aktuell(a) virtuella servrar ut?
Thomas Barregren – NodeOne
Jag har testat med och utan
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
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.doch/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 upphttpd.confi 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.sesom jag vill titta närmare på. Leta upp den fil som innehåller<VirtualHost> ... </VirtualHost>med ett ServerName eller ServerAlias med värdetforum.sekvenser.se.Thomas Barregren – NodeOne
Ok, ingen av filerna verkar
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?
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
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