Можно выйти из канала и поместить шаблон в кавычки:
grep "aaa\|bbb"
или используйте -E
:
grep -E "aaa|bbb"
или
grep -E aaa\|bbb
Идеальное решение действительно предполагает поддержку со стороны приложения, поскольку оно должно понимать, по какому пути оно работает. Это позволяет ему выбирать правильный ресурс для обслуживания и возвращать правильные ссылки и перенаправления. В этом случае конфигурация nginx будет выглядеть примерно так:
location / {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
т.е. просто передать все [0] конкретному скрипту PHP. Это может действительно работать с Zend (я не использовал его сам).
Если приложение не может быть изменено, чтобы понять это, то с переписыванием путей и изменением содержимого все становится беспорядочно. Уловка с перезаписью заключается в том, чтобы убедиться, что перезаписанный путь больше не будет перезаписан. Следующее будет переписывать пути в /index.php и передавать их Zend.
location ~ \.php(/|$) {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}
location / {
rewrite ^/(.*)$ /index.php/$1;
}
Если это не сработает, вероятно, потому что Zend не ' • правильная обработка запроса - проверьте журналы, чтобы узнать, какой путь он пытается найти.
Однако это не приведет к тому, что ссылки, возвращаемые в HTML, или перенаправления, отправленные Zend, будут использовать путь без "index.php" , и у nginx, похоже, нет механизма для их изменения. Проверьте, есть ли у Zend способ настроить корневой путь для ссылок и перенаправлений.
[0] Очевидно, вы захотите напрямую обслуживать статический контент, я это пропустил.
Вам понадобятся местоположения, похожие на это в каждом из ваших местоположений . Я просто пишу пример для / blog
location:
location /blog/ {
try_files $uri $uri/ @blog;
}
location @blog {
rewrite ^/blog/(.*)$ /blog/index.php/$1 last;
}
Также отмечен в вашей конфигурации: вы можете использовать fastcgi_split_path_info
в вашем PHP-местоположении:
# Rewrite rule adapted for Zend Framework
location / {
index index.php;
if (!-f $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}