У меня есть простая часть ModRewrite, которая передает все в index.php, если это не существующий файл или каталог.Возможны ли условные обозначения в ModRewrite?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
Теперь я хочу, чтобы добавить исключение, когда домен содержит некоторые строки, но я не знаю, как добавить это. Я думал добавить следующее.
RewriteCond %{HTTP_HOST} ^(aanmelding|keyclamps|probouw)
RewriteRule ^(.*)$ /project.php/$1 [L]
UPDATE, я нашел частичное решение Если бы это так:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# If not an old project
RewriteCond %{HTTP_HOST} !^(aanmelding|keyclamps|probouw)
# forward it to index.php
RewriteRule ^(.*)$ /index.php/$1 [L]
# Else
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# forward it to project.php
RewriteRule ^(.*)$ /project.php/$1 [L]
Он работает, но с ошибкой. Поскольку index.php существует, вторая часть условного значения по-прежнему относится к index.php вместо project.php, когда называется простой домен, как http://probouw.localhost/
Любые идеи?
ли «не работает» означает, что вы всегда перенаправляются 'index.php'? –
О нет, я получаю ошибку сервера, поэтому начать с нее некорректно. Отдельно они не вызывают ошибки. – Edward
Ошибки Apache обычно регистрируются. У вас есть доступ к журналам? –