- 0
.htaccess - убрать дубли страниц
-
Similar Content
-
By blackrusjew
Добрый
Имеем одностраничник с несколькими якорями вида https://www.site.ru/#awards
Возможно ли через htaccess и 301редирект привести их к виду https://www.site.ru/#awards/
Спасибо)
-
By d0ublezer0
Привет!
Хочу зафигачить ЧПУ для страниц, генерируемых фильтром.
Ленивый разработчик (breakdesigns, привет!) ноет, что это мол ему лично это не нужно, писать роутер и вообще никому из его клиентов это не интересно. Хочу свой, с параметрами и разделами.
Допустим, страница
https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=424d57&custom_f_25[0]=5831
где custom_f_24[0]=424d57 это марка авто BMW
а custom_f_25[0]=5831 это модель авто X1
custom_f_xxx - это фиксированные коды характеристик, участвующих в фильтрации
424d57, 5831 и другие - это сами значения.
Характеристики я смогу достать в список для формирования htaccess
Сами значения элементов фильтра тоже подчиняются алгоритму, я могу их обратно расшифровать и сформировать список.
Т.е. матрицу сопоставления что чему равно - я смогу собрать.
Вопрос - как это сделать в .htaccess, чтобы CMS продолжила работать штатно, а посетитель и поисковик видели нормальный ЧПУ?
Указанную выше ссылку я представляю как:
https://www.road.media/filter/avtomagnitoly/bmw/x1
Притом, могут быть более сложные варианты
https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=424d57&custom_f_25[0]=5831&custom_f_25[1]=5835
тут отмечены BMW, X1 и X5
в таком случае думаю URL должен быть каким-то таким
https://www.road.media/filter/avtomagnitoly/bmw/x1_x5
Марка тоже может быть не единичной.
Вообще набор значений может быть разным:
https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=4d657263656465732d42656e7a&custom_f_24[1]=4c616e6420526f766572
тут например
4d657263656465732d42656e7a = Mercedes-Benz
4c616e6420526f766572 = Land Rover
Соответственно, ожидается ссылка вида
https://www.road.media/filter/avtomagnitoly/land_rover_mercedes_benz
Это возможно вообще?
-
By domobisnes
Друзья, помогите понять, почему не работает автозамена расширений через htaccess. По сути должна быть замена jpg/png на webp если браузер пользователя поддерживает webp. В самом посте всегда указана картинка .jpg
Замена работает если только удалить в папке сайта картинку с расширением .jpg либо изменить на .jpeg (методом тыка)
Причем я знаю, что в консоли будет все равно отражаться что у картинки расширение .jpg и факт того, что есть подмена на webp видно только в графе type консоли вебразработчика.
Вот, собственно код:
<IfModule mod_rewrite.c> RewriteEngine On # Check if browser supports WebP images RewriteCond %{HTTP_ACCEPT} image/webp # Check if WebP replacement image exists RewriteCond %{DOCUMENT_ROOT}/$1.webp -f # Serve WebP image instead RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1] </IfModule> <IfModule mod_headers.c> Header append Vary Accept env=REDIRECT_accept </IfModule> <IfModule mod_mime.c> AddType image/webp .webp </IfModule>
-
By VeniVidiVici
Убираю расширение .php страницы таким кодом:
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L] Url отображается нормально без .php - www.site.ru/example
но если напрямую прописать в url название страницы с расширением .php то отображается url вида - www.ysite.ru/example.php
Как это исправить? думаю прописать редирект вручную для каждой страницы(о_О), типа:
Redirect 301 /example.php www.site.ru/example но может, есть более универсальное решение?
-
By recorder
Здравствуйте! На сайте подключен ssl, включен редирект с http на https через htaccess, нужно для определенной страницы (url) отключить https без последствий для всего сайта. Подскажите пожалуйста решение.
htaccess:
RewriteCond %{SERVER_PORT} 80 [OR]RewriteCond %{HTTPS} offRewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
-
Question
dnn
Есть статичный сайт-визитка, который раньше состоял из нескольких страниц с расширением HTML, сделал реконструкцию, расширение страниц теперь PHP.
В .htaccess прописал условия:
-pедирект с домена с префиксом «www» на домен без префикса;
-pедирект с index.php, index.htm, index.html на главную страницу сайта
-убирается слеш в конце
-поменял расширение файла в URL на html (старые страницы с .html уже проиндексированы), в результате дубли страниц: браузер видит одну и ту же страницу по разным адресам: site.ru/stranica.html и site.ru/stranica.php, а нужно естественно, чтобы все страницы открывались только с расширением html.
Пробовал разные варианты, решения найти не могу.
Сам .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
RewriteRule ^(.*)\.html $1\.php
RewriteRule ^(.*)/index\.(php|html|htm)$ http://site.ru/$1/ [R=301,L]
ErrorDocument 404 /error404.html
Link to comment
Share on other sites
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.