Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z mod_rewrite lub apache
omeck
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 7
Dołączył: 2.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Troche dziwny temat, ale sami nie wiem co mam nie tak (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Adres w przeglądarce wygląda mniej więcej tak: /index.php?mode=jakis_modul
za obsługę modułów odpowiada kod:

  1. <?php
  2. // należy wkleić plik do prawej kolumny
  3. if(isset($_GET['mode'])) {
  4. // zmienna $modulesArray przechowuje listę modułów, jakie mają być dostępne
  5. // funkcja files2array pobiera nazwy plików i wstawia je do tablicy
  6. // oczywiscie robi to przy każdym przeładowaniu strony
  7. // aby nieco przyśpieszyć pracę skryptu można zrezygnować z użycia tej funkcji i z
    definować moduły ręcznie
  8. // wtedy zmianne $modulesArray powinna wyglądać mniej więcej tak $modulesArray = a
    rray('add.php', 'best.php', ...);
  9. $modulesArray = files2array(PATH_MODULES);
  10.  
  11. if(in_array($_GET['mode'], $modulesArray)) include(PATH_MODULES.$_GET['mode'].'.php');
  12.  
  13. $include = $_GET['mode']; 
  14. } else {
  15. $include='main';
  16. }
  17. ?>


nie miałem doczynienia wcześniej z mod_rewrite, wrzuciłem do pliku .htaccess regułkę:
Kod
RewriteEngine On
RewriteRule ^mode-([a-zA-Z0-9_]*).html /index.php?mode=$1 [L]


i pojawiła się strona error'a 500. Zobaczyłem, co wywala mi phpinfo() - w Loaded Modules nie ma mod_rewrite. Pogooglowałem nieco, aby znaleźć jak się włącza mod rewrite w apache. Pomocna okazał się stronka http://enarion.net/web/apache/htaccess/mod_rewrite-on-suse/
ZZrobiłem tak, jak pisali:
Kod
   1.  Edit the file /etc/sysconfig/apache2 as root:
         1. search for APACHE_MODULES, you should find a line like this
            APACHE_MODULES="suexec access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif userdir ssl php4"
         2. Add rewrite to the content in the list between the "
         3. Save the changes and quit
   2. run SuSEconfig to update the apache configuration files
   3. run /etc/init.d/apache2 restart to restart the Apache server

zrestartowałem apache i już w Loaded Modules jest mod_rewrite

Odpaliłem skkrypt i nie wyskoczył już błąd 500. Chciałem sprawdzić, czy wszytko działa i zamiast
/index.php?mode=best wpisuję /mode-best.html i wyskakuje error 404 :/

Skryptu narazie nie zmieniałem, bo chciałem zobaczyć, czy będzie działało - nie wiem teraz, czy mam źle skonfigurowany serwer(na SuSE 9.3), czy w regułkach jest coś nie tak....

bardzo proszę o pomoc...

Ten post edytował omeck 9.01.2006, 12:17:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
omeck
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 7
Dołączył: 2.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


zrobiłem tak
1. zmieniłem lokalizację na kompie (/srv/www/htdocs)
2. adres lokalny wygląda teraz po prostu http://localhost
3. wgrałem plik .htacces(taki, jaki podał splatch)

wpisując adres http://localhost/index.php?mode=search wszystko jest ok, ale gdy wpiszę http://localhost/mode-search.html wyskakuje błąd 404 :/ A powinna pojawić się strona index.php

Jeżeli regułki są OK, to może mam jeszcze nie do końca skonfigurowany serwer? Muszę to mieć na lokalnym komputerze....

Czy ktoś mógłby mi podać regułki jakich używa? Z góry dzięki za pomoc...

Ten post edytował omeck 9.01.2006, 18:08:26
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 10:07