2009-04-09 9 views
0

salut laissez-moi vous expliquer en bref..htaccess pour réécrire l'url

J'ai un url - "http://Domain.com/FolderName/Default.aspx?EditID=6" avec une chaîne de requête.

J'ai besoin de montrer que l'url ci-dessous

"http://Domain.com/FolderName/Name" 

... cela signifie que je veux supprimer "Default.aspx?EditID=6" partie de l'URL et que vous souhaitez le remplacer par un nom ...

Pouvez-vous aider moi.

merci beaucoup ....

+0

Vous avez marqué la question avec .htaccess qui est un fichier qui applique uniquement sur les serveurs Apache mais votre exemple utilise un fichier aspx (asp.net) qui ne fonctionne normalement que sur IIS (pour asp.net, vous devez utiliser un fichier web.config et non le fichier .htaccess). Pouvez-vous clarifier si vous utilisez ASP.net sous IIS ou une autre langue sur Apache? – John

Répondre

0

Vérifiez cet article here.

En bref, cela devrait fonctionner (mais je ne l'ai pas fait testé):

# Turn on the rewriting engine 
RewriteEngine On 
# Change requests that match "FolderName/Name/" to "FolderName/Default.aspx?EditID=6" 
RewriteRule ^FolderName/Name/?$ FolderName/Default.aspx?EditID=6 [NC] 

Steve

+0

Salut merci pour votre aide ... mais rappelez-vous que vous devez écrire l'URL de base dans votre code pour travailler avec la règle de réécriture .... –

0

En supposant que vous avez mod_rewrite activé:

RewriteEngine On 

#prevent an infinite rewrite loop 
RewriteRule ^Community/Default\.aspx - [L] 

#rewrite the names 
RewriteRule ^Community/([^/]+) /Community/Default.aspx?N=$1 [L,NC,QSA] 

Dans votre/Community/Default.aspx, vous devez résoudre EditName à EditID - par exemple Regardez dans un tableau que vous définissez. Editer: Malheureusement, le module de réécriture ne sait pas quel nom correspond à quel ID (à moins que vous ne fassiez une règle distincte pour chaque ID, qui n'est pas du tout mise à l'échelle). Ainsi, le module de réécriture passe le nom N à votre Default.aspx et il est de la responsabilité du script de savoir quel ID est destiné.

+0

J'apprécie votre travail mais dans mon cas encore ça ne fonctionne pas ... URL réelle est http://domain.com/Community/Default.aspx?EditID=6&N=ABCD Je le veux en tant que http://domain.com/Community/ABCD –

0

C'est ce que j'utilise actuellement pour rediriger ainsi que permettre à certains domaines par le biais de certains fichiers pour hotlinking:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ /index.php [NC,L] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.com/.*$ [NC] 
RewriteRule \.(gif|jpg|png|zip|js|css)$ - [F]