djgarsi
7.08.2014, 09:08:22
Witam.
Mam krótkie pytanko odnośnie .htaccess'a.
W jaki sposób dopisać (301) do url'a frazę .html?
Mam linki typu domena.pl/blog-p14/tytul-artykulu
Chciałbym osiągnąć przekierowanie tego na domena.pl/blog-p14/tytul-artykulu.html
Jest to możliwe aby dać przekierowanie 301?
trueblue
7.08.2014, 09:12:26
Jest, ale musisz mieć fizycznie istniejące pliki .html lub przepisywanie adresów z .html w htaccess
RewriteCond %{HTTP_HOST} domena.pl
RewriteCond %{REQUEST_URI} ^/(.*)/(.*)
RewriteRule .* /%1/%2.html [L,R=301]
lub tylko z adresu zawierającego /blog-p14/
RewriteCond %{HTTP_HOST} domena.pl
RewriteCond %{REQUEST_URI} ^/blog-p14/(.*)
RewriteRule .* /blog-p14/%1.html [L,R=301]
djgarsi
7.08.2014, 10:06:32
A jeśli mam generowane dynamicznie linki np.
domena.pl/blog-p14/tytul-artykulu
domena.pl/blog-p16/tytul-artykulu-2
domena.pl/blog-p17/tytul-artykulu-3
domena.pl/blog-p18/tytul-artykulu-4
itd
Da się coś z tym zrobić?
Ogólnie chodzi o to żeby Google nie marudziło bo 404 będzie wywalać. W związku z tym trzeba by to przekierowanie zrobić.
trueblue
7.08.2014, 10:10:48
No, to musisz je generować z końcówką .html, a w htaccess zmienić przepisywanie przyjaznych URLi na nieprzyjazne (czyli dodać tam .html).
EDIT: A potem przekierowanie, które podałem wyżej, żeby nie było duplicate content. 404.
djgarsi
7.08.2014, 10:13:00
Wiem wiem. Obecnie już generuję je z końcówką .html. Jednak chciałbym zrobić przekierowanie z tych starych bo są zaindeksowane jeszcze bez końcówki. Wg mnie Google potraktuje te linki jako nowe i moc ich będzie budowana od zera.
trueblue
7.08.2014, 10:14:52
To właśnie, to co podałem w drugim poście z "bez .html" na ".html".
djgarsi
7.08.2014, 10:17:24
W Chrome wyrzuca że strona zawiera pętlę przekierowań.
A w Firefox dodaje z 10 razy .html.html.html.html itd
trueblue
7.08.2014, 10:18:24
To nie zależy od przeglądarki.
Pokaż jak wygląda cały htaccess.
djgarsi
7.08.2014, 10:20:40
Oto mój htaccess:
Kod
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
</IfModule>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domena.pl$
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]
RewriteRule ^blog.html$ index.php?page=blog [L,NC]
RewriteRule ^blog-p([0-9]*)/(.*).html$ index.php?page=blogpost&id=$1 [L,NC]
RewriteRule ^rss.xml$ rss/rss.php [L,NC]
ErrorDocument 404 /404.php
trueblue
7.08.2014, 10:24:45
Na razie masz tu przepisywanie z .html na nieprzyjazne.
Wygląda ok.
Może w kodzie masz przekierowania za pomocą header?
Po wpisaniu jakiego adresu wpada w pętlę?
djgarsi
7.08.2014, 10:28:07
Po dodaniu pierwszego lub drugiego kodu zachowuje się tak samo.
Wpisując domena.pl/blog-p16/tytul-artykulu-2 z i bez .html jest to samo.
Nie robiłem przekierowań za pomocą header.
trueblue
7.08.2014, 10:40:37
Ok, pokaż htaccess po zmianach.
djgarsi
7.08.2014, 10:42:35
Kod
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
</IfModule>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domena.pl$
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/(.*)/(.*)
RewriteRule .* /%1/%2.html [L,R=301]
RewriteRule ^blog.html$ index.php?page=blog [L,NC]
RewriteRule ^blog-p([0-9]*)/(.*).html$ index.php?page=blogpost&id=$1 [L,NC]
RewriteRule ^rss.xml$ rss/rss.php [L,NC]
ErrorDocument 404 /404.php
trueblue
7.08.2014, 10:47:48
RewriteCond %{REQUEST_URI} ^/(.*)/(.*)
RewriteCond %{REQUEST_URI} !.html$
RewriteRule .* /%1/%2.html [L,R=301]
djgarsi
7.08.2014, 10:57:55
Dziwne rzeczy się dzieją.
Po dodaniu tego kodu kody CSS przestały działać.
trueblue
7.08.2014, 11:16:33
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*)/(.*)
RewriteCond %{REQUEST_URI} !.html$
RewriteRule .* /%1/%2.html [L,R=301]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.