Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: htaccess - zamiana parametra na subdomene
Forum PHP.pl > Forum > Serwery WWW
kononowicz
witam.

Jak zamienić za pomoca np. htaccess taki adres:

www.test.pl/index.php?manu=13

na

www.raz.test.pl

gdzie parametr zmiennej manu 13 będzie przyporządkowany do słowa "raz"

i tak dalej... kolejnym liczbom będę przypisywał jakaś nazwę.

pozdrawiam
cały czas walczę z tym ale jednak
liczę na was smile.gif
vokiel
Parametr do słowa sobie przyporządkuj w php, bo przez .htaccess przy większej ilości będzie nieefektywne.
Co do htaccess to bym proponował coś w tym tonie (pisane z palca, nie sprawdzałem)
Kod
RewriteCond %{HTTP_HOST} ([^\.]*).test.pl$
#moze tak
RewriteRule .* /index.php?parametr=$1 [L]
# albo tak
RewriteRule ^(.*)$ index.php?parametr=$1 [L]

A w php już sobie przerób zależność $_GET['parametr'] => 12

Edit: Poniżej sposób, żeby strona główna z www nie była przekazywana jako parametr
Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.test.pl
RewriteCond %{HTTP_HOST} ([^.]+)\.test.pl
RewriteRule ^(.*)$ /index.php?parametr=$1
kononowicz
takie coś działa ale nie do konca tak jak chce:

  1. <?php
  2. RewriteCond %{HTTP_HOST} !^www.test.pl$
  3. RewriteCond %{HTTP_HOST} ^(www.)?(.+).test.pl$
  4. RewriteRule .* ?manu=%2
  5. ?>


z tej postaci:
index.php?manu=144

przechodzi na tą:
http://www.144.test.pl/


WSKAZÓWKA!!
jednak ja chciałbym zeby pokazywało nazwe działu a nie jego id. Działam teraz na oscommerce i po dodaniu modułu przyjaznych linków czesc odpowiedzialna za zmiane na przyjazne linki wyglada tak:
RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manu=$2&%{QUERY_STRING}

w tej chwili
zamiast

www.test.pl/index.php?manu=144

wyswietla

www.test.pl/pampers-m-144.html

Czyli mysle ze moze byc szansa zeby zamiast np. 144 w subdomenie była nazwa czyli w tej sytuacji pampers.

PROSZE O POMOC ... juz cały dzien nad tym siedze
vokiel
Ale zamiast generować link: index.php?manu=144 generuj od razu http://www.pampers.test.pl/
a .htaccess jest już do tego, żeby skryp zrozumiał, że ten pampers to parametr manu.
Teraz w skrypcie robisz np tablice array('pampers'=>144) i już możesz dalej z tego korzystać winksmiley.jpg
kononowicz
Cytat(vokiel @ 21.04.2009, 14:45:48 ) *
Ale zamiast generować link: index.php?manu=144 generuj od razu http://www.pampers.test.pl/
a .htaccess jest już do tego, żeby skryp zrozumiał, że ten pampers to parametr manu.
Teraz w skrypcie robisz np tablice array('pampers'=>144) i już możesz dalej z tego korzystać winksmiley.jpg



a nie da się zrobić tego bez ingerencji w skrypt sklepu questionmark.gif a tylko za pomocą htaccess. W poprzednim poście pokazałem ,że htaccess wyjmuje jakoś nazwę działu. Zastanawia mnie jak to wykorzystać.
erix
Nie da się.

Sam htaccess odpowiada tylko za obsługę gotowych linków, nowy schemat w szablonach musisz już sam zrobić.
kononowicz
w takim razie dlaczego z linijki


RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manu=$2&%{QUERY_STRING}


wynika ze pobrano w jakis sposob nazwe działu. nazwa działu jesr w miejscu (.*). Czy ma to może cos wspolnego z {QUERY_STRING}. Czy da sie jakos podczepic tą regułe do:

RewriteCond %{HTTP_HOST} !^www.test.pl$
RewriteCond %{HTTP_HOST} ^(www.)?(.+).test.pl$
RewriteRule .* ?manu=%2

oatatnia linijke probowałem na czuja zrobic cos na ten deseń

RewriteRule ^(.*)([0-9]+)$ ?manu=%2&%{QUERY_STRING}

ale nie działa ...
erix
Cytat
Czy ma to może cos wspolnego z {QUERY_STRING}. Czy da sie jakos podczepic tą regułe do:

Trochę przekombinowane... Wystarczy [QSA] na końcu regułki i po prosblemie.

Cytat
Czy da sie jakos podczepic tą regułe do:

Tak, trzeba powtórzyć bloki RewriteCond dla każdego RewriteRule z osobna.
kononowicz
Cytat(erix @ 21.04.2009, 16:03:46 ) *
Trochę przekombinowane... Wystarczy [QSA] na końcu regułki i po prosblemie.
Tak, trzeba powtórzyć bloki RewriteCond dla każdego RewriteRule z osobna.


Czyli jednak jest możliwość żeby rozwiązać mój problem. Mógłbyś mnie jakoś nakierować?? jak to analogicznie podłaczyć.
erix
A do dokumentacji, to zaglądałeś? snitch.gif
kononowicz
smile.gif a jest może dokumentacja w języku polskim questionmark.gif bo w angielskim ja nie gawarisz tongue.gif


... to może inaczej - jak za pomocą htaccessa zamienić taki link

www.test.pl/nazwa-m-123.html oczywiscie pod "nazwa" beda rozne nazwy wiec to jest taka jakby zmienna

na

nazwa.test.pl

questionmark.gif
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.