2011-10-25 14 views
10

Zaktualizowałem moją witrynę dwukrotnie od zeszłego roku i mam różne nazwy stron od mojej pierwszej wersji. Czy możliwe jest tworzenie reguł dynamicznych w Apache?Dynamiczne reguły .htaccess

np

użyć, aby te strony (przykład):

  • /abc123 (wersja 1)
  • /abc_123 (wariant 2)
  • /abc123/(wersja 3 - aktualna)

Chcę utworzyć regułę, która przekieruje abc123 do abc_123, jeśli istnieje i abc_123 do abc-123, jeśli jest xists. Dzięki

+0

Nie ma nic w odpowiedzi, którą zaakceptowałeś na temat "jeśli istnieje". Więc, najwyraźniej to nie było częścią twojego pytania, dlaczego go zapytałeś? –

Odpowiedz

16

Dlaczego nie to?

RewriteRule ^([a-z]+)([0-9]+)$ /$1-$2 [NC,L] 
RewriteRule ^([a-z]+)_([0-9]+)$ /$1-$2 [NC,L] 

EDIT:

lub można użyć 1 zasadę:

RewriteRule ^([a-z]+)(_?)([0-9]+)/?$ /$1-$3 [NC,L] 

ten sposób łatwo jest dodać znaki w (_?) zamiast tworzyć tę samą zasadę w kółko z mała wariancja.

+0

Dziękuję, że to zadziałało –

-6

znalazłem this example:

RewriteEngine on 
# 
# If the requested URL exists as a file with a .php extension 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
# internally rewrite requested .html URL to .php file 
RewriteRule ^(([^/]+/)*[^.]+)\.html$ /$1.php [NC,L] 

będzie chciał czytać o różnych opcji i edytować go, aby pracować w danej sytuacji.

+6

Próbowałem, ale to nie działa –