Autor | Zpráva | ||
---|---|---|---|
Ikki Profil |
#1 · Zasláno: 23. 9. 2022, 12:08:16
Ahoj,
potřeboval bych poradit s přesměrováním prostřednictvím .htaccess Aktuálně mám adresu: web.cz/en/produkt/1 - tato adresa již nefunguje a potřebuji ji přesměrovat na: web.cz/produkt/1?lang=en Důležité pro mě je pouze to, aby se /en/ změnilo na ?lang=en a to pro jakoukoliv stránku kterou otevřu. Je to možné? Díky. |
||
Kajman Profil |
#2 · Zasláno: 23. 9. 2022, 12:44:37
Zkuste
RewriteEngine On RewriteBase / RewriteRule ^/?(en)/(.*)$ $2?lang=$1 [R=302,L,QSA,NE] |
||
Stroganov Profil * |
#3 · Zasláno: 23. 9. 2022, 12:46:22
Niečo takéto?
RewriteEingine on RewriteRule ^(en)/(.*)$ /$2/?lang=$1 |
||
Ikki Profil |
#4 · Zasláno: 23. 9. 2022, 13:07:19
Ahoj,
bohužel ani jedna varianta se nezdá funkční. Vždy skončí stránka chybou 404, ač s parametrem stránka existuje. .Htaccess moc nerozumím, tak se blbě zeptám - ač jsem to zkoušel a nefunguje to, nechybí v tomto řádku /produkt/ nebo něco z adresy? RewriteRule ^/?(en)/(.*)$ $2?lang=$1 [R=302,L,QSA,NE] , případně k odkazům jsou již existující parametry, je tedy možné že je chyba v ?, které by v případě již existujících parametrů v URL mělo být &?
Díky moc! |
||
Kajman Profil |
#5 · Zasláno: 23. 9. 2022, 13:19:54
Ikki:
„Vždy skončí stránka chybou 404“ A co je v url? Pokud se nezmění, tak si ověřte, že máte zapnutý .htaccess a tam povolený mod_rewrite, např. Řešení některých častějších problémů (FAQ) » Kterak ověřit, zda je rewrite povoleno a zapnuto Zachování původní parametrů v query_stringu včetně & zařídí flag QSA. Nemáte tam jiná pravidla? |
||
Ikki Profil |
Omlouvám se, chtěl jsem zaslat v předchozí zprávě i aktuální .htaccess. Je to využito na Wordpress webu, tedy .htaccess určitě zapnutý je.
Adresa se nemění, proto mě napadlo zda tam například nechybí ten podparametr /produkt, když je adresa "/en/produkt/earrings-baroque-2" # BEGIN WordPress # Direktivy (řádky) mezi "BEGIN WordPress" a "END WordPress" jsou # dynamicky generované a měly by být upravovány pouze pomocí filtrů WordPressu. # Veškeré změny směrnic mezi těmito značkami budou přepsány. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule ^cs/wp-login.php /wp-login.php [QSA,L] RewriteRule ^en/wp-login.php /wp-login.php [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteRule ^/?(en)/(.*)$ $2?lang=$1 [R=302,L,QSA,NE] </IfModule> # END WordPress Díky! |
||
Kajman Profil |
#7 · Zasláno: 23. 9. 2022, 13:39:43
Nové přesměrování samozřejmě musí být na začátku (raději ale až po RewriteBase). Než se to k němu dostane, tak ostatní pravidla cestu změní a už nezačíná na en.
|
||
Ikki Profil |
#8 · Zasláno: 23. 9. 2022, 13:44:44
Bohužel ať to umístím kamkoliv, tak přesměrování nefunguje. Zkoušel jsem zaslaný kód dát i mimo Ifmodule, pod RewriteBase i nad něj a bohužel.
|
||
Kajman Profil |
#9 · Zasláno: 23. 9. 2022, 14:09:59
Takže, když na začátek .htaccess dáte
Řešení některých častějších problémů (FAQ) » Kterak ověřit, zda je rewrite povoleno a zapnuto tak se to přesměruje, ale když tam dáte [#2], tak to nic neudělá? |
||
Ikki Profil |
#10 · Zasláno: 23. 9. 2022, 14:10:49
Přesně tak
|
||
Kajman Profil |
#11 · Zasláno: 23. 9. 2022, 14:15:21
Kdyby nepřesměroval žádný z kódu, tak bych ještě nápad měl, když se při zadání adresy /en/produkt/1 nepřesměruje jen [#2] a ten druhý ano, tak nedokážu poradit.
|
||
Ikki Profil |
Našel jsem na internetu toto, ale jelikož .htaccess příliš nerozumím, myslíte, že by mi to mohlo pomoci?
RewriteCond %{REQUEST_URI} en RewriteRule ^ https://web.com%{REQUEST_URI}?lang=en [QSA,R=301,END] Když použiji toto, adresy CSS se změní, ale web se nikam nepřesměruje. Případně neexistuje varianta jak vypsat kam dané pravidlo směřuje, případně jinak zjistit proč to nefunguje? |
||
Kajman Profil |
Ikki:
„Případně neexistuje varianta jak vypsat kam dané pravidlo směřuje, případně jinak zjistit proč to nefunguje?“ httpd.apache.org/docs/current/mod/mod_rewrite.html#logging Edit: kdyby se to nedařilo, tak zkuste ještě na začátku toto #pouze pro test! (jakykoli pozadavek presmeruje na tuto diskuzi) RewriteEngine On RewriteRule ^(.*)$ https://www.jakpsatweb.cz/?url=$1 [L] |
||
Ikki Profil |
#14 · Zasláno: 24. 9. 2022, 16:21:05
Děkuji za odkaz a kód.
Kód přesměruje na ?url=index.php, což jestli chápu správně, tak wordpress produkt zobrazuje formou indexu a tvoří fake link? |
||
Kajman Profil |
#15 · Zasláno: 25. 9. 2022, 00:11:53
Jasně, jen tam musí být ještě nějaké podstrčení před tím přesměrováním. Zdroj podstrčení by měl být vidět v tom logu.
|
||
Časová prodleva: 2 roky
|
0