Redirect na WWW v htaccess změní URL
- UnkownNick
- Člen | 11
Zdravím, řeším následující problém,
potřebuji cestu striktně změnit na tvar: www.domena.cz
v HTACCESS:
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
K podstrčení podle konzole v základním tvaru domény dochází správně, problém nastává ve chvíli, když se snažím napřiklad z odkazu jinde na netu, dostat na stránku k nějaké konkrétní zanořenější stránce například:
- www.domena.cz/dalsi-stranka/ = funguje
- domena.cz/dalsi-stranka/ = přesměruje mě na www.domena.cz/index.php s 404 PAGE NOT FOUND
Přitom bych očekával, že tedy vezme celou request_uri a jen ji portne na WWW.
Nevím kde by mohla být chyba, zkoušel sem různé tvary zápisu RewriteCond a RewriteRule, ale nic nepomohlo. Nemůže do toho šahat nějak samotné conditions Nette v HTACCESSU?
RewriteEngine je 100% zaplej a funguje správně, jak říkám, problém nástavá až na delší URL, tam ji nepřesměruje správně a celou.
- tomino
- Člen | 14
ja to pouzivam takto a bez problemov:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- UnkownNick
- Člen | 11
tomino napsal(a):
ja to pouzivam takto a bez problemov:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ahoj, vyzkoušel sem a to samé, skončím na www.domena.cz/index.php 404 error, fakt už nevím :D
- UnkownNick
- Člen | 11
tomino napsal(a):
A nepresmeruje ti to PHP kod? Si si isty, ze to robi .htaccess?
Když odstraním direktivu v HTACCESSU a vymažu cache prohlížeče tak link bez www funguje správně, pokud jí tam vrátím, opět to padá na 404ku. Tedy bych řekl, že k přesměrování, respektive k špatnému přesměrování musí docházet na HTACCESS, protože bych jinak musel psát podmínku, která platí jen ve chvíli kdy v URL není www, aby došlo k přesměrování na index.php, navíc na redirect v nette používám router, a ten by mě na tuhle adresu nedostal. Pošlu celý obsah .htaccess který je ve složce /www, to je další věc … máš tohle nastavené v tomhle .htaccessu? /www/.htaccess:
# Apache configuration file (see https://httpd.apache.org/docs/current/mod/quickreference.html)
Allow from all
# disable directory listing
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\.(?!well-known/) - [F]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# enable gzip compression
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
</IfModule>
</IfModule>
Editoval UnkownNick (1. 3. 2019 11:45)