Bonjour, Malgré de nombreux essais différents je n'arrive pas à faire fonctionner une RewriteRule relativement simple sur mon offre Cloud "Performance 1"
Je veux réécrire:
https://www.mysite/user/188
en
https://www.mysite/users.php?exp=188
Mon htaccess contient:
> Options +FollowSymlinks
> RewriteBase /
> RewriteRule ^user/([0-9]*)/?$ users.php?user=$1 [L,QSA]
Le message d'erreur est une erreur 404:
The requested URL /user/117 was not found on this server.
OVH semble faire des redirections interne d'après la variable $_SERVER.
Est au moins possible de faire une telle rêgle avec un server en cloud ?
Bonjour,
y a un " RewriteEngine On" plus haut de votre code au moins ?
Car sur un CMS que des utilisateurs utilise chez OVH y une règle +/- dans le même genre; ce qui ici donnerais
>RewriteRule ^user/([0-9]+)$ users.php?user=$1 [L,QSA]
Et cela fonctionne.
Note si vous êtes en mutualisé c'est la mauvaise section.
Si vous êtes sur un VPS/Public Cloud vous devez être sûr que le module "rewrite" apache est activé.
Cordialement, janus57
Merci pour votre réponse.
`RewriteEngine On` est bien présent avant les règles, placé entre deux tags
`
RewriteEngine On
…
`
Je n'utilise pas de CMS.
Je suis avec l'offre Performance 1. Il me semble que c'est une offre cloud https://www.ovh.com/fr/hebergement-web/hebergement-performance.xml offre Performance 1
Votre proposition de règle est similaire à la mienne et ne marche pas non plus.
Bonjour,
donc c'est une offre WEB et non https://www.ovh.com/fr/cloud/ CLOUD.
Sinon il va sans doute falloir poster le fichier en complet car visiblement vous avez un problème vu que sur mutualisé normalement c'est actif la réécriture d'URL.
Cordialement, janus57
Merci beaucoup pour votre réactivité.<br />Voici mon htaccess complet. J'ai remplacé mon url par "mywebsite".<br />`<br />/#/# REWRITE RULES<br /><br /><br /><br />RewriteEngine On<br />Options +FollowSymlinks<br />RewriteBase /<br />RewriteRule ^user/([0-9]*)/?$ users.php?user=$1 [L,QSA]<br /><br /><br />/# Forbidding Image "Hotlinking" //http://httpd.apache.org/docs/2.2/rewrite/access.html<br />RewriteCond %{HTTP_REFERER} !^$<br />RewriteCond %{HTTP_REFERER} !www.mywebsite.com [NC]<br />RewriteRule \.(gif|jpg|png)$ - [F,NC]<br /><br />/# Rewrite http into https<br />RewriteCond %{HTTPS} !=on<br />RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]<br /><br />/# Rewrite add www in order to rewrite "mywebsite.com" into "www.mywebsite.com"<br />RewriteCond %{HTTP_HOST} !^$<br />RewriteCond %{HTTP_HOST} !^www\. [NC]<br />RewriteCond %{HTTPS}s ^on(s)|<br />RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br /><br /><br /><br />/#/# REWRITE RULES<br /><br /><br />/#/# COOKIES & SESSIONS<br />/# 604800 = 3600*24*7 => 1 week => See membersite_config.php to check value<br /><br />php_value session.cookie_lifetime 604800<br />php_value session.gc_maxlifetime 604800<br />php_value session.save_path "/home/mywebsitexl/sessions"<br /><br />/#/# COOKIES & SESSIONS<br /><br /><br />/#/# SECURITY<br />/# Disable unauthorized directory browsing and listing<br />Options -Indexes<br /><br />/# protect the htaccess file<br /><br />order allow,deny<br />deny from all<br /><br />/#/# SECURITY<br /><br />/#/# CACHE CONTROL /#/#<br />/# Cache images for 3 year<br /><br />Header set Cache-Control "max-age=94608000 , public"<br /><br /><br />/# Cache js css for 3 year<br /><br />Header set Cache-Control "max-age=94608000"<br /><br /><br />/# Cache some html for 3 year<br /><br />Header set Cache-Control "max-age=94608000"<br /><br /><br />/#/# CACHE CONTROL /#/#<br /><br /><br />/#/# EXPIRES CACHING /#/#<br />/# Add correct content-type for fonts<br />AddType application/vnd.ms-fontobject eot <br />AddType application/x-font-ttf ttf<br />AddType application/x-font-opentype otf<br />AddType application/x-font-woff woff<br />AddType application/font-woff2 woff2<br />AddType image/svg+xml svg<br /><br /><br />ExpiresActive On<br />ExpiresByType image/jpg "access plus 3 year"<br />ExpiresByType image/jpeg "access plus 3 year"<br />ExpiresByType image/png "access plus 3 year"<br />ExpiresByType image/gif "access plus 3 year"<br />ExpiresByType image/svg+xml "access plus 3 year"<br /><br />/# Add a far future Expires header for fonts<br />ExpiresByType application/vnd.ms-fontobject "access plus 3 year"<br />ExpiresByType application/x-font-ttf "access plus 3 year"<br />ExpiresByType application/x-font-opentype "access plus 3 year"<br />ExpiresByType application/x-font-woff "access plus 3 year"<br />ExpiresByType application/x-font-woff2 "access plus 3 year"<br /><br />ExpiresByType text/css "access plus 3 year"<br />ExpiresByType text/javascript "access plus 3 year"<br />ExpiresByType application/javascript "access plus 3 year"<br /><br /><br />/#/# EXPIRES CACHING /#/#`
Bonjour,
c'est voulu les /# ?
Et de ce que je vois et connais du principe de rewrite (si c'est bien le .htaccess copier/coller à l'identique), cela devrais fonctionner pour la première règles mais toute les autres non (car cela va s'arrêter à la première, et il semble manquer certains éléments).
Cordialement, janus57
Les /# sont volontaires. C'est pour éviter de transformer le texte en headers avec ce forum.
Tu as tout a fait raison concernant le flag L qui stop le processus de règles. Cependant, même lorsque je l’enlève, cela ne fonctionne pas non plus.
Pour aller plus loin, si je mets que la suivante dans le htaccess, cela ne marche pas non plus (avec ou sans L flag) :
> RewriteEngine On
> Options +FollowSymlinks
> RewriteBase /
> RewriteRule ^user/([0-9]*)/?$ users.php?exp=$1 [L,QSA]
RewriteRule ^user/([0-9]*)**/**?$ users.php?user=$1 [L,QSA]
A quoi sert le / après ([0-9]*) ?
/? en Regular Expressions PCRE veut dire "si il y a un trailing slash ou pas" a la fin de le l'url.
Petite parenthèse… C'est une photo de Cap Ferrat que tu as sur ton profil ? Je vis là-bas ![]()
Oui c'est cap ferrat vu depuis la Turbie.
Ha oui c'est vrai.
Mais niveau duplicate content ce n'est pas génial..
En testant le code de @janus57 ça ne marche pas non plus ?
Tu peux mettre un espace devant # pour éviter la mise en forme par le forum..
Je pense que ton htaccess peut être optimiser quand même..
Tout ça
# Rewrite http into https
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Rewrite add www in order to rewrite "mywebsite.com" into "www.mywebsite.com"
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Par un seul code plus simple que tu trouves ici
https://www.how-to.ovh/viewtopic.php?t=42#p704
Je vais essayer d'optimiser en effet.
Concernant la réponse de @janus57, non ca ne fonctionne pas.