it-swarm.com.de

Apache-Alias ​​funktioniert nicht richtig

Ich habe die folgenden Zeilen in meine virtuelle Host-Standarddatei mit 000 hinzugefügt:

Alias /antoniocs/project "/home/antoniocs/www/project"
<Directory "/home/antoniocs/www/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

/ home/antoniocs/www/project Enthält eine drupal website

Wenn ich gehe zu:

localhost/antoniocs/project

Das funktioniert gut. Ich sehe alles perfekt. Wenn ich jedoch versuche, auf einen Link zu klicken, der mich beispielsweise zu folgenden Zielen führt:

localhost/antoniocs/project/category

Ich erhalte diesen Fehler:

Nicht gefunden

Die aufgerufene URL /home/antoniocs/www/project/index.php wurde auf diesem Server nicht gefunden.

Verarbeitet das nicht den .htaccess, der sich in dem Projektordner befindet? Was mache ich falsch???

HINWEIS: Ich finde es auch seltsam, dass mir ein Dateipfad und kein URL-Pfad angegeben wird

Laufen auf Apache 2.2.16 (mit Mod Rewrite) Ubuntu 10.10 php 5.3.3-1ubuntu9.1

EXTRA HINWEIS: Für diejenigen, die drupals htaccess nicht kennen, wird alles nach index.php umgeleitet? Q = $ 1

RewriteCond% {REQUEST_FILENAME}! -F

RewriteCond% {REQUEST_FILENAME}! -D

RewriteCond% {REQUEST_URI}! =/Favicon.ico

RewriteRule ^ (. *) $ Index.php? Q = $ 1 [L, QSA]

1
AntonioCS

Ich weiß, dass dies ein sehr alter Beitrag ist, aber ich dachte diese Informationen, die ich auf einer anderen StackExchange-Site gefunden habe, könnten hilfreich sein .

Wenn Sie in Ihrer Apache-Konfiguration ein alias verwenden, müssen Sie auch RewriteBase in Ihrer .htaccess-Datei verwenden, das dem Alias ​​entspricht.

Alias /antoniocs/project "/home/antoniocs/www/project"
<Directory "/home/antoniocs/www/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Erfordert, dass Sie einschließen ...

RewriteEngine On    
RewriteBase /antoniocs/project

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Ich habe es tatsächlich bei einem Projekt bemerkt, weil ein Umschreiben mit images/js/css durchgeführt wurde und alle meine Zusatzdateien nicht geladen wurden.

6
Vagari

Es hört sich so an, als ob ein Umschreiben am falschen Ort stattfindet. Beispielsweise versucht der Webserver, die URL /home/antoniocs/www/project/index.php Anstelle der lokalen Datei über denselben Pfad zu finden. Vielleicht überprüfen Sie die Drupal Installation selbst? Sie können überprüfen, was der Server denkt, indem Sie die Anforderungen für die Umleitung mit etwas wie curl:

curl -I http://localhost/antoniocs/project/category

Überprüfen Sie, ob der Code 301 oder 302 zurückgegeben wird. Dies kann das Problem eingrenzen. Z.B.:

$ curl -I http://www.outflux.net/blog
HTTP/1.1 301 Moved Permanently
...
Location: http://www.outflux.net/blog/
4
Kees Cook

Alternativ können Sie auch das Modul userdir von Apache aktivieren. Damit Sie keinen Alias ​​erstellen müssen, um auf die Codes in Ihrem Home-Verzeichnis zuzugreifen

Sudo a2enmod userdir
cd ~
mkdir public_html
Sudo /etc/init.d/Apache2 restart

Tragen Sie Ihren Code in dieses public_html ein und Sie können darauf zugreifen mit http: // localhost/~ username oder http: // ipaddress/~ username (zum Beispiel: http: // localhost/~ aneesh )

Sie können den Verzeichnisnamen (public_html) ändern, indem Sie die Konfigurationsdatei /etc/Apache2/mods-enabled/userdir.conf Bearbeiten.

1
aneeshep

Sehen Sie nach, ob hier etwas helfen kann: https://drupal.org/node/163915 , Ihr Problem hat möglicherweise etwas mit der AllowOverride-Anweisung in zu tun./etc/Apache2/sites-available/default

1
Sabacon