Search the Community
Showing results for tags 'htaccess'.
-
Добрый Имеем одностраничник с несколькими якорями вида https://www.site.ru/#awards Возможно ли через htaccess и 301редирект привести их к виду https://www.site.ru/#awards/ Спасибо)
-
Привет! Хочу зафигачить ЧПУ для страниц, генерируемых фильтром. Ленивый разработчик (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 Это возможно вообще?
-
Друзья, помогите понять, почему не работает автозамена расширений через 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>
-
Убираю расширение .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 но может, есть более универсальное решение?
-
Здравствуйте! На сайте подключен ssl, включен редирект с http на https через htaccess, нужно для определенной страницы (url) отключить https без последствий для всего сайта. Подскажите пожалуйста решение. htaccess: RewriteCond %{SERVER_PORT} 80 [OR]RewriteCond %{HTTPS} offRewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
-
Есть статичный сайт-визитка, который раньше состоял из нескольких страниц с расширением 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
-
Добрый день. Нужна помощь в реализации редиректа ip адресов (масок подсетей) со страницы http://mydomen.ru/index.php , на другую http://mydomen.ru/wordpress/index.php . На просторах форума раздобыл данный код для .htaccess: RewriteEngine on RewriteCond %{REMOTE_ADDR} ^111\.222\.333\.\d{3}$ [OR] RewriteCond %{REMOTE_ADDR} ^111\.222\.334\.\d{3}$ RewriteCond %{REQUEST_URI} !^\/page.html$ RewriteCond %{REQUEST_URI} !^.*\.(swf|fla|xml|ico|jpg|gif|png|js|css)$ RewriteRule ^.*$ http://mysite.ru/page.html [R=301,L]Изменил его под свои нужды: RewriteEngine on RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.\d{3}$ [OR] RewriteCond %{REMOTE_ADDR} ^192\.168\.2\.\d{3}$ RewriteCond %{REQUEST_URI} !^\/wordpress/index.php$ RewriteCond %{REQUEST_URI} !^.*\.(swf|fla|xml|ico|jpg|gif|png|js|css)$ RewriteRule ^.*$ http://mydomen.ru/wordpress/index.php [R=301,L]В итоге браузер выводит вот это: Загрузка веб-страницы по адресу http://mydomen.ru/wordpress/index.php вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов.Я понимаю, что редирект у меня идет на один и тот же сайт http://mydomen.ru и правила в .htaccess работает и до редиректа и после. Нужно чтоб правила не работало уже на адресе куда я отправил посетителей с этими IP, а вот как это сделать до меня не как не дойдет
-
Здравствуйте, всем! Такой вот вопрос: Имеется пару строчек по преобразованию URL в файле .htaccess RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}\.php -fRewriteRule ^(.*)$ $1.phpRewriteCond %{HTTP_HOST} ^www\.site\.ru$RewriteRule ^(.*)$ http://site.ru/$1 Все прекрасно работает за исключением одного момента: Если я хочу перейти по адресу www.site.ru/index, он преобразовывается следующим образом - site.ru/index.php Как сделать так, чтобы расширение не добавлялось. Догадываюсь, что проблема решается тривиально, но не могу понять, как. Если кто-то знает, то буду благодарен любой помощи) P.S.: Причем добавляет только у индексной страницы. С остальными все норм=) И на удаленном сервере все работает как нужно) Видимо это какие-то косяки с локалкой, потому что при переходе на www.site.ru/my-proj он выдает вообще другую страницу mycompany.ru/my-proj. Код выше - это все содержание файла .htaccess Спасибо!
-
Здравствуйте, имеется динамический url вида site.ru/category/$name/?f=a. Подскажите пожалуйста как скрыть ?f=a из строки с помощью htaccess.
-
Добрый день. Был сайт на wordpress, который достаточно долго просуществовал с адресом главной http://www.site.ru/wordpress/ Ну вы понимаете, ошибка при установке. И вот перенесли мы файлы вордпресса в корень. Стал сайт открываться через адрес http://www.site.ru, без дополнительной папки. Но ссылки есть во многих местах. В поисковиках и каталогах, например. Решили их 301 редиректом на новые страницы перенаправлять. Вот таким кодом: # 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] RewriteRule ^wordpress/(.+)$ http://www.site.ru/$1 [R=301,L] </IfModule> # END WordPress в файле .htaccess удалось добиться перенаправления ссылок типа http://www.site.ru/wordpress/page-name на страницы http://www.site.ru/page-name Но радовались не долго. Потому что со страницами типа http://www.site.ru/w...ss/tag/tag-name этот фокус не прошёл. Открывается 404 — адрес не меняется. Помогите. Не могу понять, как решить этот вопрос. Заранее благодарен.
-
Нужно реализовать редирект нескольких ip (масок подсетей) с одной страницы, на другую. Как сделать блокирование, я знаю: <Limit GET POST> order allow,deny deny from 11.222.333. deny from 11.221.333. allow from all </Limit> Как сделать редирект на другую страницу для определенного ip, я знаю: SetEnvIf REMOTE_ADDR 111.222.333.111 REDIR="redir" RewriteCond %{REDIR} redir RewriteRule ^/$ /page.html И даже знаю, как сделать для нескольких (если не ошибаюсь): RewriteEngine on RewriteCond %{REMOTE_ADDR} !(111.222.333.111|111.222.333.222|111.222.333.333) RewriteRule .* http://mysite.ru/page.html [R=301,L] Но вот как сделать для масок подсети (как в первом варианте)? Не перечислять же их все?
-
Добрый день! Недавно заметил, что поисковики Гугл и Яндекс стали индексировать https версию сайта, при этом http версия страниц, проиндексированных по протоколу https из индекса стала удаляться, таким образом сайт стал потихоньку превращаться в https. Обратился с этим вопросом к Платонам, ответ получил быстро и главное там они указали, как эту проблему устранить, на выбор всего 2 варианта, первый вариант таков, что необходимо создать robots.txt с запретом индексации https версии и разместить этот robots.txt следует строго так, чтобы он отрывался по ссылке https//мойсайт /robots.txt Но тут возникла проблема, сайт у меня в одной папке, в ней же лежит и основной robots.txt. Вопрос такой, каким образом можно сделать https версию сайта не нарушая работоспособности основной версии, другими словами, куда следует положить robots.txt для https, что бы он открывался по адресу https//мойсайт /robots.txt, а основной robots.txt был бы доступен по прежнему адресу http//мойсайт /robots.txt И как всё это можно сделать, ведь 2 robots.txt в 1 папке для http и для https разместить нереально.. И ещё такой вопрос, как правильно через htaccess сделать переадресацию с https//мойсайт / на http//мойсайт / Какое правило для этого необходимо записать в htaccess?