Temat: .htaccess mod_rewrite

Witam,

Mam link w postaci
http://wiciu.hekko.pl/piecz/przepisy.php?kat=Ciasta-i-...

Chcę mieć
http://wiciu.hekko.pl/piecz/przepisy/Ciasta-i-drób

Jaką dać regułę? Dałem
RewriteRule ^przepisy/([^-]+)$ przepisy.php?kat=$1 [L]

Ale wtedy działa dla członów bez myślnika np. http://wiciu.hekko.pl/piecz/przepisy/Drób i nie wyświetla styli tylko sam tekst. Jak to poprawić?

konto usunięte

Temat: .htaccess mod_rewrite

Wojciech Potocki:
... Dałem
RewriteRule ^przepisy/([^-]+)$ przepisy.php?kat=$1 [L]


RewriteRule ^przepisy/(.*)$ przepisy.php?kat=$1 [L]

?

konto usunięte

Temat: .htaccess mod_rewrite

Wojciech Potocki:
Witam,

Mam link w postaci
http://wiciu.hekko.pl/piecz/przepisy.php?kat=Ciasta-i-...

Chcę mieć
http://wiciu.hekko.pl/piecz/przepisy/Ciasta-i-drób

Jaką dać regułę? Dałem
RewriteRule ^przepisy/([^-]+)$ przepisy.php?kat=$1 [L]

Ale wtedy działa dla członów bez myślnika np. http://wiciu.hekko.pl/piecz/przepisy/Drób i nie wyświetla styli tylko sam tekst. Jak to poprawić?


RewriteRule ^przepisy/([a-zA-z\-]+).html$ przepisy.php?kat=$1 [L]

?

konto usunięte

Temat: .htaccess mod_rewrite

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /piecz/przepisy.php?kat=$1 [L]

możesz jeszcze generatorem się pobawić
http://www.generateit.net/mod-rewrite/Artur Leśniewski edytował(a) ten post dnia 23.05.09 o godzinie 21:17

Temat: .htaccess mod_rewrite

OK mam taki kod w .htaccess


RewriteEngine On
RewriteRule ^przepisy/([a-zA-z\-]+).html$ przepisy.php?kat=$1 [L]


i działa http://wiciu.hekko.pl/piecz/przepisy/Ciasta-i-torty.html więc jest dobrze, ale dlaczego teraz nie wykrywa mi styli? I wszystkie linki w menu mają człon .../przepisy/... ?

konto usunięte

Temat: .htaccess mod_rewrite

Ustaw

RewriteBase /piecz/

Temat: .htaccess mod_rewrite

Dominik Ł.:
Ustaw

RewriteBase /piecz/

Trochę pomogło, ale zamiast
http://wiciu.hekko.pl/piecz/index.php

mam:
http://wiciu.hekko.pl/piecz/przepisy/index.php czyli jak usunąć człon /przepisy/ z index?

I jak zrobić żeby widziało style?

konto usunięte

Temat: .htaccess mod_rewrite

Wojciech Potocki:
OK mam taki kod w .htaccess


RewriteEngine On
RewriteRule ^przepisy/([a-zA-z\-]+).html$ przepisy.php?kat=$1 [L]


i działa ....

W pierwszym przykładzie użyłeś znaku diakrytycznego. Zatem to co teraz podałeś nie ma prawa zadziałać z tymi znakami.Robert B. edytował(a) ten post dnia 23.05.09 o godzinie 22:11

Temat: .htaccess mod_rewrite

Robert B.:
Wojciech Potocki:
OK mam taki kod w .htaccess


RewriteEngine On
RewriteRule ^przepisy/([a-zA-z\-]+).html$ przepisy.php?kat=$1 [L]


i działa ....

W pierwszym przykładzie użyłeś znaku diakrytycznego. Zatem to co teraz podałeś nie ma prawa zadziałać z tymi znakami.Robert B. edytował(a) ten post dnia 23.05.09 o godzinie 22:11

Faktycznie, to muszę usunąć znaki diakrytyczne z tym sobie poradzę ale ciągle mam problem ze stylami i odpowiednią ścieżką
Maciej W.

Maciej W. a czy ty masz swój
ręcznik?...

Temat: .htaccess mod_rewrite

w jakimś pliku nagłówkowym dopisz sobie coś takiego:



define('ADRES', 'http://wiciu.hekko.pl/piecz/');



a w definicji stylu zamiast podawać względną ścieżką pisz:


<link rel="stylesheet" type="text/css" href="<?= ADRES ?>css/style.css" />



oczywiście css/style.css zamień na ścieżkę która faktycznie określa Twój styl

tak samo rób z każdą grafiką itd. Na początku wydaje się głupie, ale idzie się szybko przyzwyczaić

konto usunięte

Temat: .htaccess mod_rewrite

Wojciech Potocki:
... ciągle mam problem ze stylami i odpowiednią ścieżką


Podaj pełną ścieżkę do CSS wraz z http: //Robert B. edytował(a) ten post dnia 23.05.09 o godzinie 23:05
Marek Kendziorek

Marek Kendziorek Programista PHP

Temat: .htaccess mod_rewrite


RewriteCond %{REQUEST_FILENAME} !-f

Może by tak zrobić? A style powrócą. :)Marek Kendziorek edytował(a) ten post dnia 23.05.09 o godzinie 23:23

konto usunięte

Temat: .htaccess mod_rewrite

Myślę, że tak powinno być ok:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /piecz/


RewriteCond %{REQUEST_FILENAME} !-s [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^przepisy/(.+) przepisy.php?kat=$1 [L]
Dominik Ł. edytował(a) ten post dnia 24.05.09 o godzinie 00:44
Maciej Derewecki

Maciej Derewecki administracja i
zarządzanie
SharePoint

Temat: .htaccess mod_rewrite

Można również zastosować zapis do styli

<link rel="stylesheet" type="text/css" href="/css/style.css" />


Pod warunkiem, że strona znajduje się w katalogu głównym.
Maciej W.

Maciej W. a czy ty masz swój
ręcznik?...

Temat: .htaccess mod_rewrite

Maciej Derewecki:
Można również zastosować zapis do styli

<link rel="stylesheet" type="text/css" 	[/quote]> href="/css/style.css" />[quote]


Pod warunkiem, że strona znajduje się w katalogu głównym.

no i właśnie to jest błąd. Mimo iż strona znajduje się w głównym katalogu htaccess może robić zamieszanieMaciej Wróbel edytował(a) ten post dnia 23.05.09 o godzinie 23:47
Maciej W.

Maciej W. a czy ty masz swój
ręcznik?...

Temat: .htaccess mod_rewrite

no i pamiętaj aby nie dawać polskich znaków w adresie - zrób sobie coś takiego:

function linkPrepare($str){
$str = str_replace('ą', 'a', $str);
$str = str_replace('ś', 's', $str);
$str = str_replace('ó', 'o', $str);
$str = str_replace('ę', 'e', $str);
$str = str_replace('ż', 'z', $str);
$str = str_replace('ź', 'z', $str);
$str = str_replace('ć', 'c', $str);
$str = str_replace('ń', 'n', $str);
$str = str_replace('ł', 'l', $str);
$str = str_replace('Ą', 'A', $str);
$str = str_replace('Ś', 'S', $str);
$str = str_replace('Ó', 'O', $str);
$str = str_replace('Ę', 'E', $str);
$str = str_replace('Ż', 'Z', $str);
$str = str_replace('Ź', 'Z', $str);
$str = str_replace('Ć', 'C', $str);
$str = str_replace('Ń', 'N', $str);
$str = str_replace('Ł', 'L', $str);
$str = str_replace(' ', '_', $str);
$str = str_replace('-', '', $str);
$str = str_replace(' ', '_', $str);
$str = str_replace(',', '_', $str);
$str = str_replace('/', '', $str);
$str = str_replace('!', '', $str);
$str = str_replace('@', '', $str);
$str = str_replace('#', '', $str);
$str = str_replace('$', '', $str);
$str = str_replace('%', '', $str);
$str = str_replace('^', '', $str);
$str = str_replace('&', '', $str);
$str = str_replace('*', '', $str);
$str = str_replace('(', '', $str);
$str = str_replace(')', '', $str);
$str = str_replace('?', '', $str);
$str = str_replace('=', '', $str);
$str = str_replace('+', '', $str);
$str = str_replace('|', '', $str);
$str = str_replace('.', '', $str); return $str;
}


i przepuszczaj adres który masz mieć przez tą funkcję. Nie będziesz miał problemu z tym, że jakichś znaków nie masz w htaccess
nie zapomnij dodać '_' lub zamień sobie na '-'
jak wolisz
Jacek Z.

Jacek Z. Web Application
Developer

Temat: .htaccess mod_rewrite

Maciej Wróbel:
no i pamiętaj aby nie dawać polskich znaków w adresie - zrób sobie coś takiego:

function linkPrepare($str){
$str = str_replace('ą', 'a', $str);
$str = str_replace('ś', 's', $str);
(...)
$str = str_replace('|', '', $str);
$str = str_replace('.', '', $str); return $str;
}


i przepuszczaj adres który masz mieć przez tą funkcję. Nie będziesz miał problemu z tym, że jakichś znaków nie masz w htaccess
nie zapomnij dodać '_' lub zamień sobie na '-'
jak wolisz


Czy tylukrotne wywołanie str_replace nie jest przypadkiem zamachem dezoptymalizującym kod...? Użyłbym raczej dwóch tablic jako argumentów pojedynczej funkcji. Ale proszę mnie poprawić jeśli się mylę.

edit: literówkaJacek Złowocki edytował(a) ten post dnia 24.05.09 o godzinie 12:32

konto usunięte

Temat: .htaccess mod_rewrite

Pewnie nie jest to jakies mega-obciazajace ale programujac w tym stylu sukcesywnie to sie zrobi faktycznie zle. Nie mowiac juz o tym ze to wyglada nieelegancko. Juz lepiej wlasnie 2 tablice i preg_replace chociazby...

konto usunięte

Temat: .htaccess mod_rewrite

A mnie zastanawia co jest złego w polskich znakach w adresie?
Z tego c się zorientowałem to nie ma żadnego wpływu na pozycjonowanie.

konto usunięte

Temat: .htaccess mod_rewrite

Ja bym użył tej funkcji do zamieniania.


function link($string){
setlocale(LC_CTYPE, 'pl_PL.UTF-8');
$string=iconv('UTF-8','ASCII//TRANSLIT',$string);
$string=str_replace(' ','_',$string);
$string=preg_replace('[\W]','',$string);
return strtolower($string);
}


Działa wyśmienicie.Bartłomiej S. edytował(a) ten post dnia 24.05.09 o godzinie 19:33

Następna dyskusja:

[.htaccess] mod_rewrite pro...




Wyślij zaproszenie do