web-dev-qa-db-fra.com

Envoyer la réponse "410 est partie" pour les URL qui sont un "c" ou un "g" suivi de chiffres

Y at-il quelque chose que je peux utiliser dans mon htaccess pour envoyer du code 410 à tous les liens mais pas à certains liens?

Exemple:

Je voudrais 410 cette urls (La liste est d'environ 40k liens)

www.example.com/c1
www.example.com/c2
www.example.com/c3
www.example.com/c4
www.example.com/g1
www.example.com/g2
www.example.com/g3
www.example.com/g4
and so one....

mais ces liens ne doivent pas venir 410, tout ce qui commence par c ou g

Comme:

www.example.com/categories/
www.example.com/concreate/
www.example.com/colombs/

En ce moment, j'utilise ce code dans mon fichier .htaccess, mais cela donne également 410 aux liens ci-dessus.

RewriteEngine On
RewriteCond %{QUERY_STRING} c
RewriteRule .* - [G,L]
ErrorDocument 410 default

Toute aide serait très appréciée.

3
Sahil Moldharia
RewriteCond %{QUERY_STRING} c

Vous ne savez pas pourquoi vous faites référence au QUERY_STRING ici? Vos URL ne semblent pas contenir de chaîne de requête?

Il semble que les URL que vous souhaitez bloquer commencent par un c ou g et sont suivis d'un chiffre (je supposerai un ou plusieurs chiffres). Dans ce cas, essayez quelque chose comme ceci:

RewriteEngine On
RewriteRule ^[cg]\d+$ - [G]

Pas besoin de l'indicateur L avec G.

4
MrWhite

user82217 a fourni une bonne solution en utilisant mod_rewrite. Vous pouvez également utiliser mod_alias pour le faire:

RedirectMatch gone "/[cg]\d+$"
1