Назад | Перейти на главную страницу

Apache2.4 mod_rewrite не будет перенаправлять меня в подкаталог на основе посещения домена

У меня есть сервер Apache2.4 с общедоступным каталогом в /var/www/html. В этом каталоге у меня есть сайт Wordpress с этим .htaccess:

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

На тот же уровень на сайте wp есть подкаталог с RESTful API /var/www/html/api/

и временную целевую страницу в /var/www/html/temp/

Я бы хотел добиться:

Я перепробовал много комбинаций в .htaccess например:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ temp [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

но безрезультатно. Какие-либо предложения? Заранее спасибо.

Прежде всего, если у вас есть доступ к конфигурации сервера, вам не следует использовать .htaccess, поскольку он замедляет ваш Apache. Кроме того, с этим намного проще справиться с двумя отдельными виртуальными хостами.

1) /etc/apache2/sites-enabled/000-default (для IP и неуказанных имен хостов):

<VirtualHost *:80>
        DocumentRoot /var/www/html
</VirtualHost>

2) /etc/apache2/sites-enabled/example.com для ваших example.com и www.example.com.

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/html/temp
</VirtualHost>