ねえ、
次の状況があります。同じ URL で動作する必要がある 2 つのシステム (Magento と Codeigniter) を実行しています。Magento はいくつかの URL のみを担当します。
http://dev/checkout
、http://dev/kasse
たとえば、にあるmagentoによって提供される必要があります/vagrant/magento
他のすべてのリクエストは、次の場所にある codeigniter によって処理される必要があります/vagrant/codeigniter
ある程度は機能しましたが、if を使用しており、フォルダーを 2 つのファイルに追加する必要があり、これは良くありません。そしてphpは時々そのルートが間違ったフォルダにあると考えることがあります(/vagrant/
、magentoフォルダなし)
私は何を間違っていますか、そしてそれを正しく行うにはどうすればよいですか?
ありがとう!
# ./sites-available/default
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name rh.dev;
root /vagrant/codeigniter/;
location ~ /(kasse|tools|checkout|warenkorb|skin|media) {
alias /vagrant/magento/;
index index.php;
try_files $uri $uri/ @handler;
}
location / {
index index.php;
if ($request_uri ~* "\.(ico|css|js|gif|jpe?g|png)$") {
access_log off;
expires max;
}
try_files $uri $uri/ @handler;
}
location @handler {
rewrite / /index.php;
}
location ~.php/ {
rewrite ^(.*.php)/ $1 last;
}
include /etc/nginx/php.conf;
}
# ./php.conf
fastcgi_intercept_errors on;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
set $php_root /vagrant/codeigniter/;
if ( $request_uri ~ /(kasse|tools|checkout|warenkorb|skin|media) ) {
set $php_root /vagrant/magento/;
}
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
# ./fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;