2017-01-23 71 views
0

我使用magento2和fishpig WordPress集成擴展和使用Nginx服務器。 Wordpress目錄位於名稱爲「wp」的magento根目錄中。使用Ngix設置Wordpress與Magento顯示404錯誤

Magento工作正常,並顯示博客內容,但訪問WordPress管理URL或前端時,它顯示404錯誤頁面未找到。

經過研究,我發現我們必須在Nginx配置文件(/ etc/Nginx/sites-available)中進行設置並設置wp目錄的位置。

下面是我試圖在Nginx的配置文件中添加

location /wp { 
    index index.php index.html index.htm; 
    try_files $uri $uri/ /wp/index.php?$args; 
} 

location /wp { 
    index index.php index.html index.htm; 
    try_files $uri $uri/ /index.php?$args; 
} 

location /wp/wp-admin/ { 
    index index.php index.html index.htm; 
    try_files $uri $uri/ /wp/wp-admin/index.php?$args; 
} 

下面是一些URL這是我所經歷的代碼 - :

Nginx configuration for a wordpress blog in a subfolder of magento root

https://codex.wordpress.org/Nginx

https://www.getpagespeed.com/web-apps/magento-wordpress-integration-nginx

以下是我的Nginx文件。

server { 
     listen 80; 
     listen [::]:80; 

     listen 443 ssl; 
     listen [::]:443 ssl; 

     server_name magento.online.com; 
     set $MAGE_ROOT /var/www/html/prod; 

     ssl_certificate /etc/nginx/ssl/nginx.crt; 
     ssl_certificate_key /etc/nginx/ssl/nginx.key; 

     root $MAGE_ROOT/pub; 

     index index.php; 
     autoindex off; 
     charset UTF-8; 
    #@raj 
     error_page 404 403 = /errors/404.php; 
     #add_header "X-UA-Compatible" "IE=Edge"; 

     # PHP entry point for setup application 
     location ~* ^/setup($|/) { 
      root $MAGE_ROOT; 
      location ~ ^/setup/index.php { 
       fastcgi_pass fastcgi_backend; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include  fastcgi_params; 
      } 

      location ~ ^/setup/(?!pub/). { 
       deny all; 
      } 

      location ~ ^/setup/pub/ { 
       add_header X-Frame-Options "SAMEORIGIN"; 
      } 
     } 

     # PHP entry point for update application 
     location ~* ^/update($|/) { 
      root $MAGE_ROOT; 

      location ~ ^/update/index.php { 
       fastcgi_split_path_info ^(/update/index.php)(/.+)$; 
       fastcgi_pass fastcgi_backend; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       fastcgi_param PATH_INFO  $fastcgi_path_info; 
       include  fastcgi_params; 
      } 

      # Deny everything but index.php 
      location ~ ^/update/(?!pub/). { 
       deny all; 
      } 

      location ~ ^/update/pub/ { 
       add_header X-Frame-Options "SAMEORIGIN"; 
      } 
     } 

     location/{ 
      try_files $uri $uri/ /index.php?$args; 
     } 

    #wordpress Code 
    # location /wordpress/ { 
    #  try_files $uri $uri/ /wordpress/index.php?$args; 
    # } 


     location /wp/wp-admin/ { 
     index index.php index.html index.htm; 
     try_files $uri $uri/ /wp/wp-admin/index.php?$args; 
     } 



    # location /wp/wp-admin/ { 
    #  index index.php index.html index.htm; 
    #   try_files $uri $uri/ /index.php?$args; 
    # } 

#End of code 

     location /pub/ { 
      location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) { 
       deny all; 
      } 
      alias $MAGE_ROOT/pub/; 
      add_header X-Frame-Options "SAMEORIGIN"; 
     } 

     location /static/ { 
      # Uncomment the following line in production mode 
      # expires max; 

      # Remove signature of the static files that is used to overcome the browser cache 
      location ~ ^/static/version { 
       rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last; 
      } 

      location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { 
       add_header Cache-Control "public"; 
       add_header X-Frame-Options "SAMEORIGIN"; 
       expires +1y; 

       if (!-f $request_filename) { 
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; 
       } 
      } 
      location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { 
       add_header Cache-Control "no-store"; 
       add_header X-Frame-Options "SAMEORIGIN"; 
       expires off; 

       if (!-f $request_filename) { 
       rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; 
       } 
      } 
      if (!-f $request_filename) { 
       rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; 
      } 
      add_header X-Frame-Options "SAMEORIGIN"; 
     } 

     location /media/ { 
      try_files $uri $uri/ /get.php?$args; 

      location ~ ^/media/theme_customization/.*\.xml { 
       deny all; 
      } 

      location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ { 
       add_header Cache-Control "public"; 
       add_header X-Frame-Options "SAMEORIGIN"; 
       expires +1y; 
       try_files $uri $uri/ /get.php?$args; 
      } 
      location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { 
       add_header Cache-Control "no-store"; 
       add_header X-Frame-Options "SAMEORIGIN"; 
       expires off; 
       try_files $uri $uri/ /get.php?$args; 
      } 
      add_header X-Frame-Options "SAMEORIGIN"; 
     } 

     location /media/customer/ { 
      deny all; 
     } 

     location /media/downloadable/ { 
      deny all; 
     } 

     location /media/import/ { 
      deny all; 
     } 

     # PHP entry point for main application 
     location ~ (index|get|static|report|404|503)\.php$ { 
      try_files $uri =404; 
      fastcgi_pass fastcgi_backend; 
      fastcgi_buffers 1024 4k; 

      fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off"; 
      fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600"; 
      fastcgi_read_timeout 600s; 
      fastcgi_connect_timeout 600s; 

      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include  fastcgi_params; 
     } 

     gzip on; 
     gzip_disable "msie6"; 

     gzip_comp_level 6; 
     gzip_min_length 1100; 
     gzip_buffers 16 8k; 
     gzip_proxied any; 
     gzip_types 
      text/plain 
      text/css 
      text/js 
      text/xml 
      text/javascript 
      application/javascript 
      application/x-javascript 
      application/json 
      application/xml 
      application/xml+rss 
      image/svg+xml; 
     gzip_vary on; 

     # Banned locations (only reached if the earlier PHP entry point regexes don't match) 
     location ~* (\.php$|\.htaccess$|\.git) { 
      deny all; 
     } 


    } 


    # 
    ## Optional override of deployment mode. We recommend you use the 
    ## command 'bin/magento deploy:mode:set' to switch modes instead. 
    ## 
    ## set $MAGE_MODE default; # or production or developer 
    ## 
    ## If you set MAGE_MODE in server config, you must pass the variable into the 
    ## PHP entry point blocks, which are indicated below. You can pass 
    ## it in using: 
    ## 
    ## fastcgi_param MAGE_MODE $MAGE_MODE; 
    ## 
    ## In production mode, you should uncomment the 'expires' directive in the /static/ location block 

任何幫助將真正appriciated。

回答

0

將WordPress集成到Magento中時,您不需要做任何特殊的重寫操作,而這些重寫操作通常不會像Nginx一樣正常工作。

根本不需要重寫。重寫的存在是爲了通過index.php路由所有的前端請求,以提供相當的SEO網址。由於Magento正在顯示前端,WordPress的這種功能並未被使用,因此可能不需要重寫。所有對WordPress管理員的請求都是存在的文件,因此不應該需要重寫。