[+] Apache2 i mod-rewrite
: 25 listopada 2007, 16:44
Witam
Od 2 dni bawię się w poprawne ustawienie u siebie na Apachu2 mod-rewrite bym mógł w tworzonych przez siebie stronkach używać przejrzystych odnośników. Niestety bezskutecznie. Mam Debian to Etch, Apache jest z repo. Uruchomiłem (tak mi się zdaje) mod-rewrite poleceniem:
Lecz jeżeli chce skorzystać z przepisania nic nie działa. Stworzyłem sobie plik, żeby zobaczyć co się dzieje ze zmiennymi i nie są one przepisywane. Oto zawartość mojego pliku .htaccess:
A oto plik php:
Jak wpiszę:
to co prawda pojawia się zawartość pliku test, ale tablica GET jest pusta. Próbowałem już różnych ustawień w pliku .htaccess yakich jak dodanie:
ale wtedy wywala mi 500! Zdaje mi się, że powinienem coś zmienić również w samej konfiguracji Apache2, ale przyznam szczerze nie mam pojęcia co.
[Dodano: 2007-11-26, 12:45]
Dobra znalazłem, więc może się to komuś przyda na później. Ok więc korzystam u siebie z modułu UserDir, żeby trzymać stronki u siebie w katalogu public_html. ¯eby działał mod-rewrite w apache2.conf lub httpd.conf trzeba umieścić / zmienić opcję AllowOverride na All. U mnie wygląda to tak:
I od razu jest logowanie do pliku. Oprócz tego w pliku .htaccess trzeba ustawić sobie parametr RewriteBase o czym dość zapominają wspomnieć.
I to tyle :mrgreen:
Od 2 dni bawię się w poprawne ustawienie u siebie na Apachu2 mod-rewrite bym mógł w tworzonych przez siebie stronkach używać przejrzystych odnośników. Niestety bezskutecznie. Mam Debian to Etch, Apache jest z repo. Uruchomiłem (tak mi się zdaje) mod-rewrite poleceniem:
Kod: Zaznacz cały
a2enmod rewrite
Kod: Zaznacz cały
RewriteEngine On
RewriteRule ^test/([0-9][0-9])/$ test.php?zmienna1=$1
Kod: Zaznacz cały
<?php
echo 'TU MA BYC $_GET[\'zmienna\'] >>'.$_GET['zmienna1']."<<
";
echo "
";
print_r($_GET);
?>
Kod: Zaznacz cały
http://localhost/~moj_user/htaccess/test/1
Kod: Zaznacz cały
Options FollowSymLinks
[Dodano: 2007-11-26, 12:45]
Dobra znalazłem, więc może się to komuś przyda na później. Ok więc korzystam u siebie z modułu UserDir, żeby trzymać stronki u siebie w katalogu public_html. ¯eby działał mod-rewrite w apache2.conf lub httpd.conf trzeba umieścić / zmienić opcję AllowOverride na All. U mnie wygląda to tak:
Kod: Zaznacz cały
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/*/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9
</IfModule>
Kod: Zaznacz cały
Options +FollowSymLinks
RewriteBase /~b0ro/htaccess/
RewriteEngine On
RewriteRule ^test/(.*)$ test.php?zmienna1=$1 [L]