2013-08-09 4 views
2

Voici mon code .htaccess,règle Réécrire ne fonctionne pas comme prévu

<IfModule mod_rewrite.c> 
RewriteEngine On 

#RewriteCond %{REQUEST_URI} /view-([a-zA-Z0-9_-]+)/$ 
RewriteRule ^view-([a-zA-Z0-9._-]+)/$ post.php?id=$1 

</IfModule> 

i.e., id = 1 $ = my-& de première -thread ++ à partir du fichier post.php.

le lien se

http://site.com/view-my-first-&-thread++/ 

et donne l'erreur 404.

Je veux que mon lien soit comme ceci:

http://site.com/view-my-first-thread/ 

Comment cela pourrait-il possible? L'aide-mémoire

+0

Il serait plus facile si vous nous dites ce que vous voulez faire, par exemple rediriger mon url laid 'http://domain.com/post.php? id = blabla & 1203' à 'http: // domain.com/view-my-first-thread/1203' – Prix

+0

Je veux supprimer le caractère comme +, $, & etc. des URL. –

+0

On ne sait toujours pas ce qui est demandé ici. Quelle est l'URL de départ et que voulez-vous qu'elle soit comme cible? Si vous supprimez '+, $, & etc. de l'URL ', l'URL interne deviendra' /post.php? Id = view-my-first-thread' au lieu de /post.php?id=view-my-first- & -thread ++ 'Comment cela va-t-il aider? Est-ce que 'post.php' ne fait pas une recherche basée sur le paramètre GET passé' id'? – anubhava

Répondre

0

L'expression régulière que vous utilisez dans le RewriteRule ne correspond pas à votre exemple d'URL, car elle exclut à la fois + et &. Parfois, en autorisant des caractères spécifiques, vous en excluez implicitement d'autres.

Essayez de changer la règle pour correspondre à quoi que ce soit, sauf une barre oblique (/):

RewriteRule ^view-([^/]+)/$` post.php?id=$1 
0

Vous aurez besoin B drapeau de mod_rewrite ici.

RewriteRule ^view-([^/]+)/?$ post.php?id=$1 [L,QSA,NC,B] 

Cela va rediriger vers http://site.com/view-my-first-&-thread++/-http://site.com/post.php?id=my-first-&-thread++

Questions connexes