J'ai récemment à utiliser un remaniée avec des segments d'URL applications CodeIgniter existant au lieu de chaînes de requête, et je suis l'aide d'un rewriterule dans htaccess pour réécrire des choses à index.php:Envoyer 404 lorsque vous demandez index.php via .htaccess?
RewriteRule ^(.*)$ /index.php/$1 [L]
Mon problème est en ce moment que beaucoup de pages de ce site sont indexées par google avec un lien vers index.php. Depuis que j'ai fait le changement pour utiliser les segments d'URL à la place, je ne me soucie plus de ces résultats google et je veux envoyer un 404 (pas besoin d'utiliser 301 Move en permanence, il y a eu assez de changements, il faudra juste tout).
Pour en savoir plus: Comment rediriger les demandes vers /index.php?whatever à une page 404? Je pensais à réécrire dans un fichier inexistant qui ferait envoyer un 404 par Apache. Serait-ce une solution acceptable? Comment la réécriture pourrait-elle ressembler?
modifier:
Actuellement, les résultats de Google existants vont simplement provoquer l'erreur suivante:
An Error Was Encountered
The URI you submitted has disallowed characters.
J'ai essayé quelque chose comme:
RewriteRule ^index\.php?(.*)$ /no-exist.html [R=404,L]
Mais il a provoqué une erreur de serveur interne.
EDIT2:
CodeIgniter est déjà l'envoi d'erreurs '400', sera-ce suffisant pour obtenir mes pages supprimées de Google?
ne fonctionne pas, encore une erreur interne du serveur. –
J'ai trouvé le problème: l'instruction slash/in '/ no-exists.html' ne devrait pas être ici (juste' no-exists.html').J'ai corrigé ma réponse. Testé - ça fonctionne. –
Ce slash fonctionne bien pour mon autre réécriture ... Inutile de dire que cela entraîne toujours une erreur interne du serveur. Peut-être que les 2 réécritures ne vont pas bien ensemble. –