2017-02-12 2 views
1

J'ai une URL nommée www.example.com/print?id=adder
Je veux qu'il ressemble www.example.com/print/adder.htaccess ne pas convertir l'url sale dans url propre

J'utilise le code suivant .htacces

RewriteEngine on 

# redirect all requests except only POST 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L] 

Mais encore, j'ai l'URL comme www.example.com/print?id=adder.

J'utilise wamp 3.0.6(Latest Version), PHP 7.0,10 & Apache 2.4.23. Pourquoi suis-je face à ce problème. Pourquoi le code ne fonctionne-t-il pas?

+0

est votre htaccess dans le dossier/impression? – starkeen

+0

Non, mon .htaccess est dans le dossier racine & print n'est pas un dossier son 'print.php'. J'ai fait les extensions .php cachées donc vous voyez 'print? Id =' au lieu de 'print.php? Id =' –

+0

"Mais encore, j'ai l'URL comme ..." - vous devez également changer le URL dans votre application (c'est ce qui modifie réellement l'URL) - probablement vous l'avez déjà fait? – MrWhite

Répondre

1

Pour rediriger votre URL à la version plus propre, mettre ce dernier au-dessus de votre RewriteRule

RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+) 
RewriteRule^/print/%1? [L,R] 
+0

votre code change l'URL, mais en raison de ce code, il donne une erreur de serveur interne 500. –

+0

Votre code modifié n'accepte pas @starkeen. Il se convertit en URL propre, mais il montre le même erreur 500, erreur de configuration interne –

+0

Akshay, je ne pense pas que vous obtenez l'erreur en raison de cette règle. La règle est ok Je l'ai testé sur mon serveur. S'il vous plaît vérifier votre journal des erreurs pour plus d'informations sur l'erreur 500. – starkeen