Redirect all url to index html

Как сделать редирект URL-адреса

Хотите перенаправить URL-адрес из одного места в другое? В этом простом руководстве мы покажем, как можно это сделать с помощью Apache / .htaccess , PHP , JavaScript , HTML и т. д. Каждый метод редиректа HTML мы кратко поясним и продемонстрируем готовые к использованию примеры.

Как сделать редирект URL-адресов с помощью PHP

Редирект с помощью PHP выполняется с помощью функции header() , например:

Эта функция должна быть вызвана в начале веб-страницы до вывода HTML-кода . Чтобы узнать больше о настройке этого метода, ознакомьтесь с документацией PHP .

Чтобы выполнить редирект с помощью PHP через определенное время:

Редирект на example.com выполняется через 5 секунд. Вы можете изменить это значение на необходимое.

Как сделать редирект URL-адресов с помощью JavaScript

Вот самый простой способ index html редиректа с помощью JavaScript :

  

Как сделать редирект URL-адресов с помощью HTML

Можно перенаправить пользователя на новый URL-адрес , используя старый добрый HTML . Вот пример:

Читайте также:  Html div по ширине экрана

Это называется meta-refresh редирект. Можно задать время ( в секундах ), изменив 10 на необходимое число. Обратите внимание, что этим методом редиректа часто злоупотребляют спамеры. Поэтому будьте осторожны, если вы реализуете его на общедоступном сайте.

В таких случаях рекомендуется задать интервал редиректа более 8 секунд, чтобы предотвратить любые возможные наказания от поисковых систем.

Как сделать редирект URL-адресов с помощью Perl

Вот два способа редиректа URL-адресов с помощью Perl :

#!/usr/bin/perl print "Location: http://example.comnn"; exit;

Как сделать редирект URL-адресов с помощью ASP (VB Script)

Чтобы перенаправить URL-адрес с помощью ASP , добавьте следующий код:

Как сделать редирект URL-адресов с помощью mod_alias Apache

Самый простой способ перенаправления на серверах Apache :

Redirect 301 /old-location.html http://example.com/new-location/

Перед тем, как сделать редирект HTML , этот код нужно добавить в файл .htaccess или файл конфигурации сервера Apache . Вот синтаксис этого метода:

[Директива] [Код состояния] [Старый URL] [Новый URL]

При необходимости можно изменить любой из этих параметров. Например, если нужно подставлять старый URL-адрес динамически, чтобы перенаправить все следующие URL-адреса :

http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .

Можно использовать RedirectMatch вместо Redirect :

RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html

Также можно изменить код статуса с 301 ( постоянный редирект ) на 302 ( временный редирект ). Или на любой другой действительный код состояния. Ниже приведено руководство по регулярным выражениям, используемым в методе RedirectMatch :

  • (.*) — соответствует любому символу ( или отсутствию символа );
  • . — буквально соответствует точке;
  • $1 — возвращает шаблон, сопоставляемый первым (.*) .

Как сделать редирект URL-адресов с помощью mod_rewrite Apache

Более функциональный способ редиректа с помощью Apache — использовать его переписывающий модуль mod_rewrite . Вот несколько примеров, которые можно добавить в .htaccess или в файл конфигурации Apache .

Пример 1: Редирект с www на без www

Этот код редиректа HTML перенаправляет все www-версии URL-адресов на их эквивалентные версии без www .

 RewriteCond % ^www.example.com$ [NC] RewriteRule (.*) http://example.com/$1 [R=301,L] 

Это называется канонизацией. Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI ;
  • . — буквально соответствует точке;
  • $ — обозначает конец запрошенного URI ;
  • [NC] — делает шаблон нечувствительным к регистру;
  • (.*) — соответствует любому символу ( или отсутствию символов );
  • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule ;
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Пример 2: Редирект всего домена

Чтобы осуществить редирект HTML с текущего домена на новый:

 RewriteRule ^/(.*) https://new-domain.tld/$1 [R=301,L] 

Аналогично можно перенаправить запросы из поддомена текущего сайта на поддомен на новом сайте:

 RewriteCond % (.*).old-domain.tld [NC] RewriteRule ^/(.*) https://%1.new-domain.tld/$1 [R=301,L] 

Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI ;
  • (.*) — соответствует любому символу ( или отсутствию символов );
  • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule ;
  • %1 — соответствует первому шаблону из круглых скобок (.*) в RewriteCond
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Обратите внимание : чтобы любой из этих методов работал корректно, оба домена должны иметь одинаковую структуру файлов. Папки и ресурсы на текущем домене также должны существовать и на новом домене. В противном случае вы получите на новом домене кучу ошибок 404 .

Пример 3: Перенаправление всех файлов HTML и PHP

Вот еще один, более сложный пример скрипта редиректа HTML mod_rewrite :

 RewriteCond % ^/old-directory/(.*).(html|php)$ [NC] RewriteRule (.*) http://example.com/new-directory/%1.%2 [R=301,L] 

Мы перенаправляем все запросы к любым файлам HTML или PHP , расположенным в папке /old-directory/ . Все соответствующие запросы перенаправляются в тот же файл, который находится в /new-directory/ . Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI;
  • (.*) — соответствует любому символу ( или отсутствию символов );
  • . — буквально соответствует точке;
  • (html php) — соответствует либо html , либо php ;
  • [NC] — делает шаблон нечувствительным к регистру;
  • %1 — соответствует первому шаблону из круглых скобок (. *) в RewriteCond ;
  • %2 — соответствует второму шаблону из круглых скобок ( html|php ) в RewriteCond ;
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Как сделать редирект ошибки 404 с помощью Apache

Вот удобный код редиректа html HTML всех ошибок 404 «Not Found» на определенный URL .

ErrorDocument 404 http://example.com/wherever/

Просто измените URL-адрес на нужный и добавьте код в файл .htaccess в корневой папке вашего сайта или добавьте его в файл конфигурации Apache .

Вадим Дворников автор-переводчик статьи « How to Redirect URLs »

Пожалуйста, оставляйте свои мнения по текущей теме статьи. За комментарии, дизлайки, лайки, отклики, подписки низкий вам поклон!

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How would i get the server to redirect all the urls to index.html #66

How would i get the server to redirect all the urls to index.html #66

Comments

I want the server to redirect all urls to index.html, because I’m using the html 5 history api. Is there an elegant way to do this with connect?

The text was updated successfully, but these errors were encountered:

As far as I can tell, this redirects every URL including links to js css files etc

Is there an easy way to duplicate the htaccess style, so that requests for actual files do not get redirected?

IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond % !-f RewriteCond % !-d RewriteRule . /index.html [L] /IfModule>

could easily be how I’ve config’d, so here’s that below, thanks!

// start a node server connect:  preview:  options:  port: 9000, keepalive: true, base: './dev', livereload: true, // https://github.com/gruntjs/grunt-contrib-connect/issues/66 middleware: function(connect, options)  return [function(req, res)  require('fs').createReadStream('dev/index.html').pipe(res); >] > > >, optimize:  options:  port: 9001, keepalive: true, base: './production', // https://github.com/gruntjs/grunt-contrib-connect/issues/66 middleware: function(connect, options)  return [function(req, res)  require('fs').createReadStream('index.html').pipe(res); >] > > > >,

grunt-contrib-connect is just a wrapper for https://github.com/senchalabs/connect This task provides reasonable defaults for development. For more advanced use cases it is recommended to write your own connect middleware or even use connect directly.

middleware is a request and response stream. Based on the request, you give a response. The above example just gives index.html as the response for every request. Connect has a static middleware which will serve static files that correlate with the request. Using a combination of serve-static and your own middleware you can achieve your desired results.

For anyone running into the same issue, I ended up using this strategy danburzo.ro/grunt/chapters/server/ by @danburzo

It would be super cool if something like this was an option w/ grunt-contrib-connect, though totally understand may not fit w/ project goals/scope

module.exports = function(grunt)  var rewrite = require('connect-modrewrite'); // Project configuration. grunt.initConfig( // start a node server connect:  preview:  options:  port: 9000, livereload: 35729, keepalive: true, base: './dev', hostname: 'localhost', // http://danburzo.ro/grunt/chapters/server/ middleware: function(connect, options)  var middleware = []; // 1. mod-rewrite behavior var rules = [ '!\\.html|\\.js|\\.css|\\.svg|\\.jp(e?)g|\\.png|\\.gif$ /index.html' ]; middleware.push(rewrite(rules)); // 2. original middleware behavior var base = options.base; if (!Array.isArray(base))  base = [base]; > base.forEach(function(path)  middleware.push(connect.static(path)); >); return middleware; > > > >, watch:  dev:  files: 'dev/**/*', tasks: ['preview'], options:  debounceDelay: 250, livereload: true >, > >, jshint:  all: [ 'Gruntfile.js', 'dev/js/site/**/*.js' ], options:  jshintrc: '.jshintrc', > > >); // preview task grunt.registerTask('preview', [], function ()  // load plugins for the task grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-watch'); // execute the task grunt.task.run( 'connect:preview' ); >); // end preview task // task grunt.registerTask('optimize', [], function ()  // load plugins for the task grunt.loadNpmTasks('grunt-contrib-connect'); // execute the task grunt.task.run( '' ); >); // end task >;

Источник

Оцените статью