.htaccess — Синхронизация браузера — PHP и htaccess?

Я в настоящее время использую Yeoman Generator Gulp-Webapp, который я немного изменил, чтобы он работал с PHP. Я просто добавил gulp-connect-php & Затем http-proxy отредактировал задачу browserSync gulpfile.babel.js, добавив следующий код. Теперь мне нужно найти способ заставить его работать с htaccess. Есть идеи, как это можно сделать?

gulp.task('serve-php', ['styles', 'fonts'], () => {
phpConnect.server({
port: 9001,
base: 'app',
open: false
});
const proxy = httpProxy.createProxyServer({});
browserSync({
notify: false,
open: true,
port: 9000,
server: {
baseDir: ['.tmp', 'app'],
routes: {
'/bower_components': 'bower_components'
},
middleware: function (req, res, next) {
var url = req.url;
if (!url.match(/^\/(styles|fonts|bower_components)\//)) {
proxy.web(req, res, { target: 'http://127.0.0.1:9001' });
}
else {
next();
}
}
}
});

gulp.watch([
'app/**/*.html',
'app/**/*.php',
'app/scripts/**/*.js',
'app/images/**/*',
'.tmp/fonts/**/*'
]).on('change', reload);

gulp.watch('app/styles/**/*.scss', ['styles']);
gulp.watch('app/fonts/**/*', ['fonts']);
gulp.watch('bower.json', ['wiredep', 'fonts']);
});

3

Решение

Я смог заставить его работать с PHP и htaccess!

Вместо того, чтобы использовать gulp-connect-php для создания vhost, я использовал XAMPP. Затем я нацеливаю прокси на хост XAMPP. Вот как я это сделал:

gulp.task('serve-php', ['styles', 'fonts'], () => {
const proxy = httpProxy.createProxyServer({});
browserSync({
notify: false,
open: true,
port: 9000,
server: {
baseDir: ['.tmp', 'app'],
routes: {
'/bower_components': 'bower_components'
},
middleware: function (req, res, next) {
var url = req.url;
if (!url.match(/^\/(styles|fonts|bower_components)\//)) {
proxy.web(req, res, { target: 'http://xamppvhost.dev' });
}
else {
next();
}
}
}
});

gulp.watch([
'app/**/*.html',
'app/**/*.php',
'app/scripts/**/*.js',
'app/images/**/*',
'.tmp/fonts/**/*'
]).on('change', reload);

gulp.watch('app/styles/**/*.scss', ['styles']);
gulp.watch('app/fonts/**/*', ['fonts']);
gulp.watch('bower.json', ['wiredep', 'fonts']);
});

Я удалил phpConnect.server () и изменил proxy.web () так, чтобы он предназначался для моего хоста XAMPP.

Теперь все работает !!

1

Другие решения

Возможно, это все еще может быть полезно для тех, кто сталкивается с этим.

Если вы разрабатываете на Mac, вы можете использовать MAMP и Глоток-MAMP, безусловно, самый простой способ заставить все работать — PHP, htaccess и MySQL, если это необходимо.

https://www.npmjs.com/package/gulp-mamp

После установки вы можете заставить вещи работать только с этим кодом в вашем gulpfile:

var mamp = require('gulp-mamp');
gulp.task('mamp-start', function(cb){
mamp(options, 'start', cb);
});

И затем добавление задачи к задаче по умолчанию, или с помощью команды gulp mamp-start,

Mamp + Browser sync

это также очень просто, просто скопируйте код из этого файла gulpfile:

https://github.com/sdotson/gulp-mamp-browsersync/blob/master/gulpfile.js

1