У меня есть wordpress, размещенный на Apache2 с Nginx перед. <WORLD> ===> <NGINX PROXY> --> APACHE/DOCKER/STATIC WEBSITE etc...
Мой nginx conf для прокси-сервера WordPress:
server { server_name dev-www.example.com; location / { proxy_pass http://127.0.0.1:13400; } }
Моя конфигурация apache:
Listen 13400 <VirtualHost 127.0.0.1:13400> CustomLog /var/log/httpd/sites/dev-www/access_log combined ErrorLog /var/log/httpd/sites/dev-www/error_log DirectoryIndex index.php DocumentRoot /var/www/sites/example.com/dev-www RewriteEngine On <Directory /var/www/sites/example.com/dev-www/> Options Indexes FollowSymLinks AllowOverride all </Directory> </VirtualHost>
И wordpress .htaccess
:
# 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] </IfModule> # END WordPress
Проблема в том, когда я dev-www.example.com/foobar.php
на dev-www.example.com/foobar.php
Я перенаправлен на 127.0.0.1/foobar.php
. Я знаю, что это от конфигурации nginx
127.0.0.1
pop out, как исправить это?
Я пытаюсь передать прокси на dev-www.example.com:13400
но у меня есть бесконечный цикл:
[Вт 10 мая 23: 44: 45.001680 2016] [ядро: ошибка] [pid 1096] [клиент 127.0.0.1:54887] AH00124: запрос превысил предел 10 внутренних переадресаций из-за вероятной ошибки конфигурации. Используйте «LimitInternalRecursion», чтобы увеличить предел, если это необходимо. Используйте «LogLevel debug», чтобы получить обратную трассировку., Referer: http://dev-www.example.com/
примечание: нет проблем с http://dev-www.example.com
или http://dev-www.example.com/index.php
Спасибо.
note2: Если я изменю конфигурацию nginx на localhost: 13400, то я перенаправлен на localhost / login-3. Похоже, что .htaccess перенаправляется на ServName, и это 127.0.0.1
Это wordpress перенаправить на HTTP_HOST
, добавив
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
в wp-config.php
исправить это.
Звучит так, как вы экспортировали ваш сайт WordPress из локальной системы разработки в производственную систему. Скорее всего, вы больше не сможете войти в / wp-admin. В этом случае вам необходимо вручную обновить записи базы данных в таблице wp_options
. Ищите варианты siteurl
и home
.
Также попробуйте добавить это в wp-config.php (но, боюсь, это предназначено только для исходящих запросов)
define('WP_PROXY_HOST', '1.2.3.4'); define('WP_PROXY_PORT', '13400'); # define('WP_PROXY_USERNAME', 'my_user_name'); # define('WP_PROXY_PASSWORD', 'my_password'); define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com');