2016-04-19 3 views
1

Ich bin mit Apache nicht sehr erfahren, aber ich habe es geschaffen, mit der folgenden eingerichtet für Monate auf meiner Test-Box läuft:, wie vorhandene Apache-Konfiguration zu ändern, um neue Anwendung Document-Root zu ändern

[email protected]:/etc/apache2/sites-enabled$ vim 000-default.conf 
<VirtualHost *:80> 
     ServerAdmin [email protected] 
     DocumentRoot /var/www/html 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

So Grundsätzlich, wenn ich einen neuen Ordner unter/var/www/html erstelle, wird er in meinem Browser verfügbar. Aber jetzt will ich versuchen, Folgendes zu tun:

  1. ich eine neue Anwendung erstellt haben, mit der folgenden Struktur:

    /var/www/html/testrestapp/src/public/Index .php

Es funktioniert, aber ich muss navigieren:

http://localhost/testrestapp/src/public/index.php/hello/sometestname 

und dann die Anwendung Rückkehr s „sometestname“

Aber ich würde gerne wissen, wie Apache so konfigurieren, dass ich so navigieren kann:

http://localhost/testrestapp/hello/sometestname 

und erhalten die gleichen Ergebnisse.

Kann mir jemand in die richtige Richtung zeigen? Nicht sicher, welche Terminologie verwendet wird, um dies zu googeln.

Danke.

EDIT 1

Ich habe die folgenden:

[email protected]:/etc/apache2/sites-enabled$ sudo a2enmod rewrite 
Enabling module rewrite. 
To activate the new configuration, you need to run: 
    service apache2 restart 

Und dann Neustart versucht:

[email protected]:/etc/apache2/sites-enabled$ service apache2 restart 
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. 

Apr 19 10:14:39 mydev apache2[9010]: * The apache2 configtest failed. 
Apr 19 10:14:39 mydev apache2[9010]: Output of config test was: 
Apr 19 10:14:39 mydev apache2[9010]: AH00526: Syntax error on line 14 of /etc/apache2/sites-enabled/000-default.conf: 
Apr 19 10:14:39 mydev apache2[9010]: RewriteBase: only valid in per-directory config files 
Apr 19 10:14:39 mydev apache2[9010]: Action 'configtest' failed. 
Apr 19 10:14:39 mydev apache2[9010]: The Apache error log may have more information. 
Apr 19 10:14:39 mydev systemd[1]: apache2.service: Control process exited, code=exited status=1 
Apr 19 10:14:39 mydev systemd[1]: Failed to start LSB: Apache2 web server. 
Apr 19 10:14:39 mydev systemd[1]: apache2.service: Unit entered failed state. 
Apr 19 10:14:39 mydev systemd[1]: apache2.service: Failed with result 'exit-code'. 

Hier ist, was meine/etc/apache2/sites-enabled/000- Die Datei default.conf sieht so aus:

11   ServerAdmin [email protected] 
12   DocumentRoot /var/www/html 
13   RewriteEngine on 
14   RewriteBase /testrestapp/ 
15   RewriteRule ^src/public/index.php/hello$ hello/ [R] 

EDIT 2:

Meine 000-default.conf Datei nun wie folgt aussieht:

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     DocumentRoot /var/www/html 
     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 
<Directory "/var/www/html/testrestapp/"> 
    RewriteEngine on 
    RewriteBase /testrestapp/ 
    RewriteRule ^src/public/index.php/hello$ hello/ [R] 
</Directory> 

Apache startet erfolgreich:

[email protected]:/etc/apache2/sites-enabled$ sudo /etc/init.d/apache2 restart 
[ ok ] Restarting apache2 (via systemctl): apache2.service. 

Aber wenn ich zu http://localhost/testrestapp/hello/jojo navigieren i bekommen ein 404 Fehler.

Dies ist, was ich in der access.log sehen:

127.0.0.1 - - [19/Apr/2016: 13: 50: 04 -0400] „GET/testrestapp/hallo/jojo HTTP/1.1 "404 507" - "" Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/49.0.2623.110 Safari/537.36 "

+0

webmaster @ localhost nur nutzlos ist – tripleee

+0

@tripleee Danke, dass es mich wissen Ich Standard gerade verlassen alles aus, wenn es wurde zum ersten Mal – Happydevdays

+0

@Happydevdays Leider eingerichtet für mit irreführend du yeetday, deine EDITs und dein Zeitspredieren waren unnötig, wie du unten in meiner Antwort sehen kannst. – menssana

Antwort

0

In Ihrem"/etc/apache2/sites-enabled/000-Standard.. Die folgenden conf“, verwenden mod_alias und fügen.

alias "/testrestapp/hello" "/var/www/html/testrestapp/src/public/index.php/hello" 
Verwandte Themen