Rewriting sans extension

  • Auteur de la discussion Auteur de la discussion Kwaelbi
  • Date de début Date de début
WRInaute impliqué
Bonjour

Je suis en train d'essayé de mettre en place un rewriting sans extension mais OVH bloque :

J'utilise ce code :

Code:
RewriteRule ^site/(.*)$ /site/site.php?nomurl=$1 [L]

Or il ne fonctionne pas. erreur 500 : Internal Server Error

Alors que celui là fonctionne :

Code:
RewriteRule ^site/(.*).html$ /site/site.php?nomurl=$1 [L]

Que faire .

Merci d'avance

PS : Je suis chez OVH en mutu
 
WRInaute impliqué
j'suis pas sur que ca changera quelque chose mais t'as essayé :

RewriteRule ^site/(.+)$ /site/site.php?nomurl=$1 [L]
 
WRInaute accro
seebz a dit:
j'suis pas sur que ca changera quelque chose mais t'as essayé :

RewriteRule ^site/(.+)$ /site/site.php?nomurl=$1 [L]

bah ca va rien changé du tout !! Quand ca ne marche pas, ca ne marche pas!!

OVH se garde de la ressource serveur en empechant le rewrite sur des fichiers sans extention car cela fait ramer les serveurs des mutus.

par contre tu peux handle tous les fichiers php sans extention, <a href="index">
c'est deja ca...

Puis tu peux t'amuser a creer de nouvelles extentions si les extentions php ou html ne te plaisent pas :
<a href="index.ext">
c'est toujours ca...


8)
 
WRInaute impliqué
J'ai trouvé sur le Hub !

Pour ceux qui sont intéressés, ma ligne fait une boucle infinie, ce qui explique l'erreur 500

j'ai donc ajouté

RewriteRule .*.php - [L]
RewriteRule .*.css - [L]
RewriteRule .*.png - [L]
RewriteRule .*.jpg - [L]
RewriteRule .*/images - [L]
RewriteRule .*/admin - [L]

Comme ça la règle n'est pas prise en compte dans ces cas

Si vous avez plus simple je suis preneur
 
Nouveau WRInaute
Bonjour,

Le sujet date un peu mais pour ceux qui tomberont sur cette page par google ou autre voici comment j'ai régler le problème.

Apparemment c'est une option par defaut chez OVH mutu qui pose problème lorsque l'on met en place ce type d'url rewriting. Elle permet à apache de choisir le langage le plus adapter à la page sans extension qui est demandé par l'utilisateur.

exemple:
pour une url de ce type http://monsite.com/test Apache va chercher une page test.html ou test.php etc ...

Du coup quand on fait de l'url rewriting ça ne nous conviens guère.

Pour régler le problème on va dire à Apache de ne pas chercher d'extension en ajoutant la ligne suivante dans le .htaccess

Options -Multiviews

Voila en esperant que cela aidera ...
 
WRInaute discret
Moi je custome mes page comme cela :

Code:
<?php
        $page = "page de switch.php";
		switch($xview)
		{
			case "index"		: $page = "index.php";			break;
			case "autre_page"		: $page = "autre_page.php";				break;
			case "page"			: if (isCustomPage($_GET['pagename'])) { $page = "$_GET[pagename].php"; }	break;
		}
		
		include_once($page);
		?>

+ plus la petite fonction

Code:
<?php
		function isCustomPage($pagename) {
				$result = false;
		if (in_array($pagename, $GLOBALS['custom_pages'])) {
				$result = true;
		}
		return $result;
		}
		?>

En espérant que ça te serve :wink:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut