RewriteRule
Dobrý den,
mám vytvořenou subroménu /www/subdom/365
v ní mám nainstalovaný WordPress
rád bych přesměroval pár stránek
postupuji dle návodu https://kb.wedos.com/cs/webhosting/htaccess/htaccess-mod-rewrite-hezke-url-presmerovani/ ,
ale nefunguje mi zatím žádný zápis.
v souboru .htaccess je
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # nic mi zatím nefunguje # RewriteRule reference/urgenti-preklad/ reference/ [R] # RewriteRule "reference/urgenti-preklad/" "reference/" [R] # RewriteRule /reference/urgenti-preklad/ /reference/ [R] # ...
Hádám že je problém v tom, že se snažím přesměrovávat odkazy subdomény.
Děkuji za pomoc
5 Answers
Dobrý den,
problém je ve výchozím kódu WordPressu: příznak [L] znamená „Last“: pokud se dané pravidlo aplikuje, žádné následující nebude použito, dokumentace viz https://httpd.apache.org/docs/2.4/rewrite/flags.html
Kód WordPressu říká, že pokud je adresa neexistující soubor (!-f) nebo adresář (!-d), přesměruj na index.php a žádná další pravidla neaplikuj (není to dobrý nápad WordPressu, přesměrují se tak třeba i odkazy na neexistující obrázky – je tedy dobré nespoléhat se na generátory, nespokojit se s tím, že to funguje, ale je dobré vědět, CO PŘESNĚ to dělá).
Váš kód by tedy měl fungovat, pokud vaše přesměrování dáte PŘED přesměrování WordPressu (URL, které přesměrováváte, je neexistující soubor a pravidlo WordPressu s příznakem L zabrání tomu, aby se vaše přesměrování dostalo ke slovu).
Dobrý den,
možná, jaký .htaccess upravujete? Pro zjednodušení zkuste vytvořit soubor .htaccess přímo ve složce subdomény a kód vložit tam.
Zkuste použít nějaký .htaccess generator. Když toto heslo zadáte do Googlu, najdete jich několik, uvidíte, který vám bude nejvíce vyhovovat .
nakonec jako funkční řešení je kód
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^category/preklady/$ / [R=301,L] RewriteRule preklady/.* / [R=301,L] RewriteRule ^category/zpetne-vazby/$ /reference/ [R=301,L] RewriteRule ^category/tlumoceni/$ / [R=301,L] RewriteRule tlumoceni/.* / [R=301,L] RewriteRule zpetne-vazby/.* /reference/ [R=301,L] </IfModule>