Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/10/2014, à 18:34

peterp@n

[Résolu/Contourné] Nginx réécriture d'url

Salut à tous,

Sur un serveur local j'ai un site créé avec respondcms et pour l'instant il est accessible à l'adresse www.freecad-france.com (acheté chez 1and1).
Ensuite toute la navigation sur le site donne des adresses comme ça : http://www.freecad-france.com/respond/sites/freecadfrance/page/apropos-freecad-france.
Est il possible de supprimer de l'affichage la partie /respond/sites/freecadfrance ?
Est ce bien avec les directive de réécriture d'url que j'arriverai à ça ?
Après quelques recherches est ce qu'une directive de genre qu'il faut écrire ? J'utilise nginx et ispconfig où il y a un emplacement pour écrire ce genre de directive.

location /respond/sites/freecadfrance/ {
   rewrite ^/respond/sites/freecadfrance/*) http://$server_name/$1 permanent;
 }

Je précise que je ne suis pas dev et que j'utilise nginx et ispconfig car après plusieurs tentatives infructueuse avec apache j'ai suivi un excellent tutoriel sur nginx et ispconfig et que ça marche comme sur des roulettes smile

Merci d'avance pour votre aide.

Dernière modification par peterp@n (Le 21/10/2014, à 19:03)


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#2 Le 19/10/2014, à 20:50

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Salut,

Ne peux-tu pas directement lui dire que la racine de ton site est ce répertoire-là ?

Hors ligne

#3 Le 19/10/2014, à 23:37

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Salut tiramiseb, merci de te pencher sur mon problème.
Non je ne peux pas définir la racine du site (en gros c'est /[chemin]/web/) et le cms est installé dans web/respond/ et le site est dans web/respond/sites/freecadfrance/.
Ce que je peux faire c'est faire une redirection permanente par exemple www.freecad-france.com est redirigé vers/respond/sites/freecadfrance/ mais ça pose problème car je ne peux plus accéder au backend qui se trouve sous respond/ car si je tape www.freecad-france.com/respond ça pointe vers www.freecad-france.com/respond/sites/freecadfrance/respond/ qui n'existe pas... De plus ça affiche /respond/sites/freecadfrance/.

En fait maintenant j'en suis que www.freecad-france.com pointe vers la page index de base (pas bon) du dossier web et que mon site n'est accessible qu'à partir de www.freecad-france.com/respond/sites/freecadfrance/ (pas terrible non plus).

Donc j'ai deux problèmes :
faire une redirection de www.freecad-france.com vers /respond/sites/freecadfrance/ en réécriture d'url
maquer /respond/sites/freecadfrance/ des urls sureent en réécriture d'url aussi.

Dernière modification par peterp@n (Le 21/10/2014, à 18:28)


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#4 Le 20/10/2014, à 08:12

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Si j'ai bien compris la problématique, je proposerais plutôt de faire la chose suivante :

location / {
    alias [chemin]/web/respond/sites/freecadfrance/ 
}
location /respond {
    alias [chemin]/web/respond
}

Hors ligne

#5 Le 20/10/2014, à 16:58

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Salut,
Je pense que tu as bien compris la problématique.
En essayant de placer les directives que tu me donnes je tombe sur une erreur 403 en essayant ça

location / {
            alias /var/www/freecad-france.com/web/respond/sites/freecadfrance;
        }

D'autre chemin comme /respond/sites/freecadfrance ou /web/respond/sites/freecadfrance me donne des erreurs 404.

En éditant directement le fichier vhost de nginx

nano /etc/nginx/sites-available/freecad-france.com.vhost

J'ai changer

root   /var/www/freecad-france.com/web;

en

root   /var/www/freecad-france.com/web/respond/sites/freecadfrance;

Et là c'est exactement ce que je veux en terme d'affichage d'url, sauf que je ne vois pas comment accéder au backend (respond).


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#6 Le 20/10/2014, à 17:26

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Mais où as-tu placé ces directives ?
Pour moi, c'était évident qu'il faut les mettre dans le vhost.
Bon, si tu as déjà la racine là où il faut (avec "root"), tu n'as pas besoin de mettre la section "location /".

Donc, dans la définition de ton vhost, tu ajoutes le bloc "location /respond" que je t'ai proposé.

Hors ligne

#7 Le 20/10/2014, à 17:38

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Que ce soit via l'interface ISPconfig ou en directe, les modifications impactent le fichier vhost.
Voici mon vhsot actuel:

server {
        listen *:80;


        server_name freecad-france.com www.freecad-france.com *.freecad-france.ddns.net freecad-france.ddns.net cms.freecad-france.com;

        #root   /var/www/freecad-france.com/web;
        root   /var/www/freecad-france.com/web/respond/sites/freecadfrance;

        if ($http_host ~* "^(freecad-france\.ddns\.net|.+\.freecad-france\.ddns\.net)$") {
            rewrite ^(?!/\b(respond|stats|error)\b)/(.*)$ /respond/$2 permanent;
        }
        if ($http_host = "cms.freecad-france.com") {
            rewrite ^(?!/\b(respond|stats|error)\b)/(.*)$ /respond/$2 permanent;
        }
        location /respond {
            alias   /var/www/freecadfrance.com/web/respond;
        }


        index index.html index.htm index.php index.cgi index.pl index.xhtml;



        error_page 400 /error/400.html;
        error_page 401 /error/401.html;
        error_page 403 /error/403.html;
        error_page 404 /error/404.html;
        error_page 405 /error/405.html;
        error_page 500 /error/500.html;
        error_page 502 /error/502.html;
        error_page 503 /error/503.html;
        recursive_error_pages on;
        location = /error/400.html {

            internal;
        }
        location = /error/401.html {

            internal;
        }
        location = /error/403.html {

            internal;
        }
        location = /error/404.html {
            internal;
        }
        location = /error/405.html {

            internal;
        }
        location = /error/500.html {

            internal;
        }
        location = /error/502.html {

            internal;
        }
        location = /error/503.html {

            internal;
        }

        error_log /var/log/ispconfig/httpd/freecad-france.com/error.log;
        access_log /var/log/ispconfig/httpd/freecad-france.com/access.log combined;

        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location /stats/ {

            index index.html index.php;
            auth_basic "Members Only";
            auth_basic_user_file /var/www/clients/client2/web3/web/stats/.htpasswd_stats;
        }

        location ^~ /awstats-icon {
            alias /usr/share/awstats/icon;
        }

        location ~ \.php$ {
            try_files /d3c3feb7c3a6163bd2909d287669599a.htm @php;
        }

        location @php {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/lib/php5-fpm/web3.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
        }


        if ($host != "www.freecad-france.com"){
            rewrite ^(.*)$ http://www.freecad-france.com$1 permanent;
        }

        if (!-e $request_filename){
        rewrite (.*)/api/.* $1/api/dispatch.php;
        }

        if (-e $request_filename.php){
        rewrite ^(.*)$ /$1.php;
        }


}

Les trois dernières directives sont ajoutées via ISPconfig.
Les modif en début de fichier sont ajouté à la main.
Je n'arrive pas à accéder à www .freecad-france. com/respond cela donne une erreur 500.


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#8 Le 20/10/2014, à 17:39

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Je n'arrive pas à accéder à www .freecad-france. com/respond cela donne une erreur 500.

Regarde les détails dans les logs...

Hors ligne

#9 Le 20/10/2014, à 17:47

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

J'ai regardé dans /var/log/nginx/error.log et acces.log, j'ai regardé dans les logs systeme depuis l'interface ISP et je ne vois rien en rapport...


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#10 Le 20/10/2014, à 18:19

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Il y a forcément trace de cette requête dans les logs... Regarde avec un "tail -f".
Concernant l'interface ISPConfig, je ne peux pas me prononcer, je n'utilise pas ce genre d'artifices...

Hors ligne

#11 Le 20/10/2014, à 18:41

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

J'ai trouvé ça
cat /var/log/ispconfig/httpd/freecad-france.com/error.log

2014/10/20 19:26:40 [error] 11810#0: *66 "/freecadfrance.com/web/respond/index.html" is not found (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/error/404.html" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 19:26:40 [error] 11810#0: *66 rewrite or internal redirection cycle while internally redirecting to "/error/404.html", client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"

Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#12 Le 20/10/2014, à 18:49

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

OK, on dirait que ton erreur 500 c'est parce que ça n'arrive pas à afficher l'erreur 404.
Donc si je comprends bien, là tu as deux problèmes :
1/ ton interface d'administration tombe en 404
2/ ton erreur 404 boucle sur elle-même

Pour la 2, ça peut être lié au changement de "root" : tu as probablement le fichier /var/www/freecad-france.com/web/error/404.html, pour l'erreur 404. Il faut alors mettre la ligne suivante pour les "location = error*" :

root   /var/www/freecad-france.com/web

Pour la 1, tu peux tenter avec "location /respond/" (en ajoutant le slash final).

Hors ligne

#13 Le 20/10/2014, à 20:36

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Avec

 location /respond/ {
            alias  /var/www/freecadfrance.com/web/respond;
        }

ou

 location /respond/ {
            alias  /var/www/freecadfrance.com/web/respond/;
        }

Je tombe sur une 404
Les logs

2014/10/20 21:26:32 [error] 15043#0: *3 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/respond" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 21:29:10 [error] 15089#0: *1 open() "/var/www/freecad-france.com/web/respond/sites/freecadfrance/respond" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond HTTP/1.1", host: "www.freecad-france.com"

Avec

 location /respond {
            alias  /var/www/freecadfrance.com/web/respond;
        }

ou

 location /respond {
            alias  /var/www/freecadfrance.com/web/respond/;
        }

Je tombe sur une 404
Les logs

2014/10/20 21:30:04 [error] 15105#0: *2 open() "/var/www/freecadfrance.com/web/respond" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond HTTP/1.1", host: "www.freecad-france.com"
2014/10/20 21:33:27 [error] 15215#0: *1 open() "/var/www/freecadfrance.com/web/respond/" failed (2: No such file or directory), client: 192.168.0.254, server: freecad-france.com, request: "GET /respond HTTP/1.1", host: "www.freecad-france.com"

Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#14 Le 20/10/2014, à 20:38

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Il te dit que "/var/www/freecadfrance.com/web/respond" n'existe pas. Normal... tu as oublié le tiret dans "/var/www/freecad-france.com" smile

Dernière modification par tiramiseb (Le 20/10/2014, à 20:39)

Hors ligne

#15 Le 20/10/2014, à 20:57

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Bien vu smile

2014/10/20 21:52:40 [error] 15696#0: *1 directory index of "/var/www/freecad-france.com/web/respond" is forbidden, client: 192.168.0.254, server: freecad-france.com, request: "GET /respond/ HTTP/1.1", host: "www.freecad-france.com"

Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#16 Le 20/10/2014, à 21:02

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

directory index of "/var/www/freecad-france.com/web/respond" is forbidden

Il essaie de lister le contenu du répertoire en question... il n'y a pas de fichier "index.html". ? Ou alors ne faut-il pas des instructions précises pour PHP, si c'est en PHP ?

Mon interprétation est la suivante :
Avec « location ~ \.php$ » tu dis comment interpréter les fichiers PHP. Sauf qu'avec « location /respond », tu empêches le premier de s'exécuter. Il faut alors soit mettre le même truc avec "@php" dans « location /respond », soit y mettre directement les instructions pour php-fpm...

Hors ligne

#17 Le 20/10/2014, à 21:20

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Il y bien un index.php

Bon, je pense que ça va pas marcher comme ça... Déjà en changeant root, j'ai l'impresion que ça casse l'API du cms.
La liste des article de blog par exemple ne se charge pas, et on dirait que les formulaires ne marche plus (pas d'envoi de mail et pas de message erreur/echec lors du clic sur le bouton envoyer du formulaire).

A la limite pour l'instant que l'url soit moche c'est pas grave mais comment redirigé l'utilisateur sur l'index du site dans /respond/sites/freecadfrance/ lorsqu'on tape juste le nom de domaine...


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#18 Le 20/10/2014, à 21:23

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Déjà en changeant root, j'ai l'impresion que ça casse l'API du cms.

Peut-être simplement une configuration à modifier au niveau du CMS.

Bon, je pense que ça va pas marcher comme ça...

Je pense que ça peut. Mais bon, je ne suis pas sur ton PC, je ne peux pas être catégorique...

comment redirigé l'utilisateur sur l'index du site dans /respond/sites/freecadfrance/ lorsqu'on tape juste le nom de domaine...

Quelque chose comme ça, certainement :

rewrite ^/$ http://www.freecad-france.com/respond/sites/freecadfrance/ redirect;

Hors ligne

#19 Le 20/10/2014, à 21:38

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Arf t'as raison, un instant d'hésitation...:/

Effectivement changer le root à l'air bien cf http://respondcms.com/documentation/configuring-domains


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#20 Le 21/10/2014, à 00:41

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Bon je crois que j'ai fait quelque chose qui marche et surtout que j'ai compris wink et ça va te plaire vu que c'est sans utilisé ISpconfig
Bref j'ai remis le vhsot comme à l'origne sauf le root qui pointe sur le dossier respond/sites/freecadfrance.
J'ai créer à la main un nouveau vhost dev.freecad-france.com avec la même config sauf root (qui pointe sur respond). J'ai fait un sous domaine chez 1and1 (en repointant les dns chez moi) j’attends pour voir si l'interface de respondcms est accessible depuis l'extérieur mais déjà avec le /etc/hosts qui pointe dev.freecad-france.com sur l'ip du serveur local ça marche bien !


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne

#21 Le 21/10/2014, à 08:56

tiramiseb

Re : [Résolu/Contourné] Nginx réécriture d'url

Ouais, utiliser deux noms différents, pourquoi pas...
Cela étant dit, je te conseille d'utiliser "admin" au lieu de "dev" : par convention, le nom "dev" pointe généralement sur une autre instance du site, en développement, sur laquelle il n'est pas grave de tout casser. smile

Hors ligne

#22 Le 21/10/2014, à 19:01

peterp@n

Re : [Résolu/Contourné] Nginx réécriture d'url

Merci tiramiseb pour ton aide et les conseils. smile


Ubuntu 14.04 64bits, Raspbian “wheezy”, Tango Studio sauce debian
Assistance - Développement - Formations FreeCAD (logiciel 3d)

Hors ligne