Estamos usando uma loja de comércio eletrônico incorporada em nosso site, que funciona adicionando o script JS necessário à página /shop
. No lado do servidor, o requisito agora é que todas as URLs do esquema /shop/anything
sejam reescritas para /shop
para o servidor, porque o restante da parte deve ser processado pelo armazenamento JS incorporado.
Eu não consigo escrever isso e estou recebendo rewrite or internal redirection cycle while processing "/shop
. Eu acho que tem a ver apenas com expressões regulares, mas eu pareço ser sem noção.
Minhas configurações são as seguintes:
server {
listen 8002 default_server;
listen [::]:8002 default_server;
location / {
root /home/mysite;
rewrite ^/shop/.+$ /shop;
index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $uri $uri/ /index.php?$query_string;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
Eu também tentei rewrite ^/shop/.*$ /shop;
, mas o resultado é o mesmo. : |
Normalmente, todas as URLs estão sendo processadas pelo arquivo index.php
em /home/mysite
(que é realmente o script de entrada para uma estrutura), mas eu preciso das URLs após /shop
não serem processadas pela estrutura PHP, mas pelo JS incorporado em /shop
.
Qual é a maneira correta de fazer isso?
== Atualizar ==
Por acaso falei com um dos desenvolvedores de suporte do ECWID. Embora eles não tenham nenhum exemplo do Nginx, eles conseguiram fornecer um fragmento do Apache. Espero que ajude:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~makfruit/shop/
RewriteRule ^([^\.]+)$ .
</IfModule>