Problem z mod_rewrite i katalogami

Witam!

Właśnie próbuję “uprzyjaźnić” linki na swojej stronie. Niestety mam pewien problem, otóż chcę, aby linki miały budowę zagorskid.info/gallery/album-1.html.

Stosuję do tego:

RewriteRule ^gallery/album-([^-]*).html$ gallery.php?aid=$1

Niestety przez wprowadzenie slasha zaburza się struktura katalogów i strona nie wyświetla się poprawnie (http://zagorskid.info/gallery/album-1.html).

Kiedy zamiast slasha daję myślnik - wszystko jest ok: http://zagorskid.info/gallery-album-1.html

Istnieje jakiś sposób naprawienia tego z poziomu htaccess tak, żeby nie trzeba było zmieniać wszystkiego na stronie?

Z góry dziękuję za pomoc, pozdrawiam.

Też z tym miałem problem.

W sekcji

(przed wszelkimi dołączeniami stylów itp.) wstaw

Napisz czy coś się zmieniło.

Hmm… strona wyświetla się poprawnie, ale tak jakby nie były przekazywane zmienne - cały czas wyświetla się strona główna galerii: http://zagorskid.info/gallery/album-2.html i np. http://zagorskid.info/gallery/album-5.html dają to samo. Linki z myślnikami działają normalnie…

hmm pokaż obecnego htaccess’a.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.zagorskid.info

RewriteRule ^(.*)$ http://zagorskid.info/$1 [R=permanent,L]

RewriteRule ^gallery/album-([^-]*).html$ gallery.php?aid=$1

RewriteRule ^gallery-album-([^-]*).html$ gallery.php?aid=$1

spróbuj tak:

Dalej to samo…

hmm a spróbuj w pliku gallery.php wyświetlić zmienną $aid pobraną z GET’a.

Ja zrobiłem tak: w folderze głównym umieściłem dwa pliki - .htaccess i gallery.php.

w htaccesie:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^gallery/album-(.*).html$ gallery.php?aid=$1

w gallery.php:

<?php

echo $_GET['aid'];

?>

i odtwarzam:http://195.189.33.50/gallery/album-6.html (zamiast szóstki dowolna liczba) Htaccessa radziłbym spróbować tak, bo pewnie regułki odnoszą się nie do tego co trzeba:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^gallery/album-(.*).html$ gallery.php?aid=$1 [L]


RewriteCond %{HTTP_HOST} ^www.zagorskid.info$

RewriteRule ^(.*) http://zagorskid.info/$1 [QSA,L,R=301]

Zmienna nie jest w ogóle przekazywana: http://zagorskid.info/gallery-album-4.html - lewy góry róg - jest 4

http://zagorskid.info/gallery/album-4.html - nie ma nic.

Złączono Posta : 17.11.2007 (Sob) 11:41

Zrobiłem to samo na prostszym skrypcie. Dzieje się dokładnie to samo - przy użyciu slasha zmienna nie jest przekazywana.

http://zagorskid.info/test_mod-album-1.html działa

http://zagorskid.info/test_mod/album-1.html nie działa :(.

może slasha poprzedź backslashem :wink:

Problem już rozwiązany - jak się okazało OVH ma własne wymagania dotyczące konstrukcji wyrażeń przepisujących (http://forum.ovh.pl/archive/index.php/t-5341.html). Zacząłem już nad tym siedzieć… ale chyba mnie zbanowali na całe ovh, bo nie mam dostępu do swojej strony, menagera ovh, ftp ani forum ovh - ze swojego ip się nie dostanę, a przez anonymouse wszystko działa normalnie… Ech… banują ludzi za dużą ilość odświeżeń strony? :mrgreen: (bawiłem się z mod_rewrite i trochę się tego nazbierało…)