Zadejte hledaný výraz...

Htaccess do nginx

alibagil
verified
rating uzivatele
22. 2. 2023 14:54:52
Neuměl by někdo převést htaccess tak, aby fungoval ne serveru s NGINX? Zkoušel jsem nějaký webový konverter, ale nefungovalo to. Konkrétně mi jde o tyto řádky: 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en)/(+)/$ /index.php?stranka=$2&lang=$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*/)?(+)/$ /index.php?stranka=$2&lang=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en)/(+)$ /index.php?galerie=$2&lang=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/)?(+)$ /index.php?galerie=$2&lang=$1
22. 2. 2023 14:54:52
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513535
Webtrh AI
verified
rating uzivatele
22. 2. 2023 14:54:57
Přepisovaní URL adres podle pravidel souboru .htaccess v Apache serveru funguje jinak než v Nginx. Nginx nepoužívá .htaccess soubory, ale místo toho má svůj vlastní systém konfigurace serveru.
Pro přepsání pravidel z .htaccess do konfigurace Nginx byste měli provést následující úpravy:
location / {
if (!-d $request_filename){
set $rule_0 1;
}
if (!-f $request_filename){
set $rule_0 1;
}
if ($rule_0){
rewrite ^(en)/(+)/$ /index.php?stranka=$2&lang=$1 break;
rewrite ^(./)?(+)/$ /index.php?stranka=$2&lang=$1 break;
}
if (!-f $request_filename){
set $rule_1 1;
}
if ($rule_1){
rewrite ^(en)/(+)$ /index.php?galerie=$2&lang=$1 break;
rewrite ^(.
/)?(+)$ /index.php?galerie=$2&lang=$1 break;
}
}
V tomto příkladu jsou pravidla uložena v bloku "location /". Pokud chcete použít pravidla pro specifické cesty, musíte je vložit do bloku "location" pro danou cestu.
Změna pravidel byla provedena použitím "rewrite" místo "RewriteRule" a "if" místo "RewriteCond". Dále byly přidány "break" na konec každého řádku "rewrite", aby se přerušilo další zpracování pravidel, pokud se pravidlo shoduje.
22. 2. 2023 14:54:57
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513529
TomasX
verified
rating uzivatele
(4 hodnocení)
22. 2. 2023 15:39:16
Můžeš dát nějaké ukázky adres a lepší popis? Pravidla vypadají podobně, jen ty druhý dvě se chytají na existující adresář a očividně tam zobrazují galerii, je to tak?
Odhadem by to mohlo vypadat nějak takhle:
22. 2. 2023 15:39:16
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513534
unlucky
verified
rating uzivatele
(16 hodnocení)
23. 2. 2023 10:46:17
mas 
RewriteEngine On?
Jinak (en) => /en/
23. 2. 2023 10:46:17
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513533
TomasX
verified
rating uzivatele
(4 hodnocení)
23. 2. 2023 10:53:30
Napsal unlucky;1658726
mas 
RewriteEngine On?
Jinak (en) => /en/
jak to myslíš? Nginx nemá nic jako RewriteEngine On, rewrite pravidla podporuje out of box. Tady asi nejde vůbec o ten rewrite jazyku (odhaduji), ale o to, že má podmínky na existenci souboru a adresáře, to nejspíš ty různé online convertory neumí, netuším, nepoužívám.
23. 2. 2023 10:53:30
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513532
alibagil
verified
rating uzivatele
23. 2. 2023 12:59:03
Napsal TomášX;1658699
Můžeš dát nějaké ukázky adres a lepší popis? Pravidla vypadají podobně, jen ty druhý dvě se chytají na existující adresář a očividně tam zobrazují galerii, je to tak?
V podstatě jsou 4 případy url adresy, 2 klasické a 2 pro anglickou mutaci stránek: 
  • www.pokus.cz/kontakty/ se přesměruje jako www.pokus.cz/index.php?stranka=kontakty&lang=
  • pokus.cz/kvetiny jako www.pokus.cz/index.php?galerie=kvetiny&lang=
  • www.pokus.cz/en/contacts/ jako www.pokus.cz/index.php?stranka=contacts&lang=en
  • www.pokus.cz/en/flowers jako www.pokus.cz/index.php?galerie=flowers&lang=en
Rozlišoval jsem tak klasické stránky, to jsou ty s / na konci a prvky stránek, což jsou třeba právě galerie, nebo příspěvky blogu, bez lomítka. Dřív to mělo větší smysl, kdy jsem v url prvku stránky předával i jeho nadřazenou stránku, něco jako "www.pokus.cz/fotogalerie/kvetiny", ale od toho jsem z důvodu SEO upustil. Takže klidně bych to teď mohl předělat na 2 pravidla, první a třetí.
23. 2. 2023 12:59:03
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513531
TomasX
verified
rating uzivatele
(4 hodnocení)
23. 2. 2023 13:19:24
chápu, dělat rozlišení v lomítkách na konci je pro mě nečekané, ale budiž, kód pro nginx by mohl vypadat nějak takhle:
Podmínky na ty složky a soubory, co jsi měl původně mi ještě nedávají smysl, resp. nechápu jestli je používáš nebo to je nějaké pozůstatek. Dal jsem pryč to chycení "en" jazyku, stejně tak pak případně předáváš první segment jako jazyk, když jsou dva segmenty.
Můžeš vyzkoušet, jestli bude fungovat?
23. 2. 2023 13:19:24
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513530
alibagil
verified
rating uzivatele
27. 2. 2023 13:45:40
Napsal TomášX;1658742
Můžeš vyzkoušet, jestli bude fungovat?
Bohužel to z nějakého důvodu nefungovalo, dokonce to způsobilo i nefunkčnost CSS, kdy mi to hlásilo, že nemají type="text/css". Nakonec zabral až tento kód:
Nebyl moc prostor na nějaké experimentování, k nastavení toho serveru nemám přístup, takže to bylo v duchu "posílám soubor, zkuste ho tam vložit" :-( V každém případě moc díky za ochotu.
27. 2. 2023 13:45:40
https://webtrh.cz/diskuse/htaccess-do-nginx/#reply1513528
Pro odpověď se přihlašte.
Přihlásit