subdomain letrehozasa htaccessel
Sziasztok.
A kerdesem a kovetkezo:
szeretnek letrehozni egy webcimet htaccessben:
shop.gordius.ro/termekkategoria/termeknev.html
amit a www.gordius.ro/shop.php?cat=termekkategoria&prod=termeknev
file fogja feldolgozni.
Valaki ert a htaccesshez annyira, hogy segitsegemre legyen?
Kiindulaskent talaltam valamit (lennebb lathato), azonban ez nem jo, mert a subdomain nevet adja at a feldolgozo filenak.
Elore is koszi a segitseget.
Zoli
■ A kerdesem a kovetkezo:
szeretnek letrehozni egy webcimet htaccessben:
shop.gordius.ro/termekkategoria/termeknev.html
amit a www.gordius.ro/shop.php?cat=termekkategoria&prod=termeknev
file fogja feldolgozni.
Valaki ert a htaccesshez annyira, hogy segitsegemre legyen?
Kiindulaskent talaltam valamit (lennebb lathato), azonban ez nem jo, mert a subdomain nevet adja at a feldolgozo filenak.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.yourwebsite.com
RewriteCond %{HTTP_HOST} ([^.]+)\.yourwebsite.com
RewriteRule ^(.*)$ /path_to_your_site/httpdocs/work_out.php?url=%1
RewriteCond %{HTTP_HOST} !^www\.yourwebsite.com
RewriteCond %{HTTP_HOST} ([^.]+)\.yourwebsite.com
RewriteRule ^(.*)$ /path_to_your_site/httpdocs/work_out.php?url=%1
Elore is koszi a segitseget.
Zoli
hozzafuzes
Koszi
Zoli
nem jó az elképzelés
atiranyitas
próbáld ki ezt
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ shop.php?cat=$1 [L]
RewriteRule ^([^/]+)/(.*)\.html$ shop.php?cat=$1&prod=$2 [L]
szerk: ja bocs, ez nem csak a shop.gordius.ro-s url-eket írja át, hanem mindet.
Más valaki esetleg?
subdomain
Koszi azert
Redirect 301 kell hozzá!!!
Üdv: Feri
nem az kell hozzá!!!
megoldás menete
ServerAlias shop.gordius.ro
- a domain shop-pal kezdődik (a {HTTP_HOST} illeszkedik a ^shop\.[^.]+\.[^.]+$ mintára)
- a cím nem létezik (a {REQUEST_FILENAME} nem létezik (!-f, !-d))
- a cím /termekkategória/termék/ alakú (a {REQUEST_FILENAME} illeszkedik a ^/([^/])/([^/])/?$ mintára)
ennyiből már talán meg tudod oldani.
koszi
hiba
A subdomain be van jegyezve, de sajnos valamiert nem mukodik a dolog.
Valakinek van otlete mert?
Ime a htaccess file tartalma:
RewriteCond {HTTP_HOST} ^shop\.[^.]+\.[^.]+$
RewriteCond {REQUEST_FILENAME} !-f, !-d
RewriteCond {REQUEST_FILENAME} ^/([^/])/([^/])\.html?$
RewriteRule ^(.*)$ shop.php?cat=%1&prod=%2 [QSA]
Elore is koszi.
Zoli
feltételeket nem lehet vesszővel tagolni
helyett
RewriteCond {REQUEST_FILENAME} !-d
elsőre ezt vettem észre.
u.i: bocs, hogy nem válaszoltam a leveledre, hétvégén nem nagyon voltam gépközelben.
szerk:
1) érdemes beüzemelni egy rewritelogot, hogy lásd mi történik
2) ha pontos választ vársz írd le, hogy mit takar az hogy "nem működik a dolog" ;)
majdnem megoldas:)
A megoldas majdnem teljesen megvan, mar csak a kovetkezot kell megoldjam:
Ezt szeretnem ugy megoldani, hogy a shop.gordius.ro/kategoria/ cimbe a kategoria resz opcionalis legyen.
Vagyis, roviden azt, hogy a shop\.[^.]+\.[^.]+ mintara illeszkedo cim a shop.php filehoz menjen minden lekeressel.
Koszi elore is.
Sziasztok.
két átirányítás
RewriteCond {HTTP_HOST} ^shop\.[^.]+\.[^.]+$
RewriteCond {REQUEST_FILENAME} !-d
RewriteCond {REQUEST_FILENAME} !-f
RewriteCond {REQUEST_FILENAME} ^/([^/])/([^/])\.html?$
RewriteRule ^(.*)$ shop.php?cat=%1&prod=%2 [QSA]
RewriteCond {HTTP_HOST} ^shop\.[^.]+\.[^.]+$
RewriteCond {REQUEST_FILENAME} !-d
RewriteCond {REQUEST_FILENAME} !-f
RewriteCond {REQUEST_FILENAME} ^/([^/])\.html?$
RewriteRule ^(.*)$ shop.php?prod=%1 [QSA]
(elképzelhető hogy megoldható egyetlen szabállyal, de most nincs időm tesztelni, ez pedig biztosan működik)
magyarázat: először megnézzük, hogy shop.domain.tld/kategória/terméknév.html alakú-e az url, ha igen átirányítunk, ha nem akkor megbukik a feltétel, így jön a következő átirányítás, ahol a shop.domain.tld/terméknév.html url-eket kezeljük le.
RewriteCond {HTTP_HOST} ^shop\.[^.]+\.[^.]+$
RewriteCond {REQUEST_FILENAME} !-d
RewriteCond {REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ shop.php?path=$1 [QSA]
magyarázat: minden kérést, ami a shop.domain.tld-re érkezik és nem létező fájlra mutat, átirányítunk a shop.php-re. a $_GET['path']-ból tudod kibányászni, hogy mi volt a kérés (kategória/terméknév.html vagy terméknév.html).
mindkét esetben a nem létező oldalakra neked kell 404-es fejlécet küldened, mivel az apache 200-as fejlécet ad vissza a sikeres belső átirányítás miatt.
kötelező olvasmány: http://weblabor.hu/cikkek/rovidwebcim
megvan
ezen már ne múljon
Biztos vagy te ebben?