Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: apache - nie do końca dobre działanie mod_rewrite?
Forum PHP.pl > Forum > Serwery WWW > Apache
Foxx
Mam problem z Apache zainstalowanym na Ubuntu 10.10.
Objawy są następujące:

- nie działają skrypty PHP gdy po nazwie skryptu jest slash, np:
localhost/test.php/
localhost/test.php/costam
Efekt:
Kod
Not Found
The requested URL /test.php/costam was not found on this server.


- działa .htaccess, działa prosta reguła:

Kod
RewriteEngine on
RewriteRule ^alice.html$ bob.html


- działają skrypty gdy url ma postać inną niż wyżej opisana, np:

localhost/test.php
localhost/test.php?cos=wartosc
localhost/test.php?cos=wartosc/costam
localhost/test.php?cos=wartosc/costam/
localhost/test.php?/costam/

- na drugim komputerze mam także Ubuntu i apache/php/mysql działają tam poprawnie. skopiowałem więc php.ini oraz apache2/apache2.conf i apache2/sites-available/default ale to nie rozwiązało problemu

/etc/apache2/apache2.conf:
Kod
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include /etc/phpmyadmin/apache.conf
Include ports.conf
Include conf.d/
Include sites-enabled/


/etc/apache2/httpd.conf - pusty plik

/etc/apache2/sites-available/default:

Kod
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/jakub/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/jakub/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

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

    ErrorLog ${APACHE_LOG_DIR}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/access.log combined

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

</VirtualHost>


Będę wdzięczny za sugestie.
melkorm
a może pokażesz sam plik .htaccess ?
Foxx
W powyższym poście wkleiłem treść .htaccess na którym przeprowadziłem test i stwierdziłem, że działa.
Mój problem nie dotyczy konkretnego projektu, ale każdego projektu/skryptu, który próbuję uruchomić. Objawy są wszędzie takie same.
Nie pojawiły się też w trakcie użytkowania poprawnie skonfigurowanego systemu - wczoraj zainstalowałem ubuntu + php, mysql, apache i od razu zmagam się z tym problemem.

erix
Adresy plik.php/asd działają raczej tylko wtedy, gdy masz PHP podłączone via (Fast)CGI. Mod_php na coś takiego nie pozwalał bez dodatkowych obejść.

Pobaw się flagą cgi.fix_pathinfo.
Foxx
Hej, dzięki za odpowiedź. Wypróbowałem obie możliwe wartości cgi.fix_pathinfo i niestety niczego to nie zmienia.

Przeinstalowałem Apache i ciągle to samo. W defaultowym ustawieniu Apache document root jest ustawiony na /var/www i gdy pozostawiam to ustawienie i testuję skrypty właśnie tam to objawy są takie same. Czy to możliwe, że coś jest nie tak z czymś innym niż konfiguracja Apache? Dlaczego po skopiowaniu poprawnej konfiguracji dla Apache i Php z drugiego komputera objawy kompletnie się nie zmieniły?

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.