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 Odpověď
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).