J'ai un ensemble de RewriteRules dans .htaccess à des fins de référencement. Exemple ...Pourquoi un trait d'union dans une RewriteRule se brise-t-il dans un sous-dossier
RewriteEngine On
RewriteRule ^signup$ /signup.php
RewriteRule ^account$ /account.php
RewriteRule ^logout$ /logout.php
RewriteRule ^login$ /login.php
RewriteRule ^recent-questions$ /recent.php
RewriteRule ^popular-questions$ /popular.php
...
...
(more similar stuff)
...
...
RewriteRule ^(.*)/([-_~*a-zA-Z0-9]+)\|([0-9]+)(\/)?$ view.php?title=$1&id=$2&%{QUERY_STRING}
RewriteRule ^([-_~*a-zA-Z0-9]+)(\/)?$ categories.php?key=$1
Le système se trouve dans un sous-dossier "ask" sur le serveur.
Ils fonctionnent très bien si je Mappez le dossier à http://ask.mydomain.com
Mais je ne veux pas utiliser un sous-domaine depuis que je suis l'ajout d'un en-tête existant & pied géré par d'autres personnes qui partagent resouces et contient liens relatifs avec le principal www. site Internet.
Lorsque j'essaie d'accéder au dossier via http://www.mydomain.com/ask les RewriteRules avec des tirets dans les résultats dans 404 erreurs - les autres continuent à fonctionner.
J'ai déjà essayé d'échapper les tirets comme - et% 2D. Le premier n'a fait aucune différence. Ce dernier me conduit à une page complètement incorrecte.
Les règles de réécriture se trouvent dans un fichier .htaccess dans le dossier ask, sans application de RewriteBase, de sorte qu'elles "dépouillent le répertoire local avant le traitement" (comme documenté ici: http://httpd.apache.org/docs/2.0 /mod/mod_rewrite.html#rewritebase) J'ai tout de même essayé votre suggestion, le résultat étant toujours 404 pour les liens gênants. – rwired
Même si (. *) Ne correspond à rien, c'est toujours un groupe, donc $ 2 et $ 3 devraient être corrects. D'un autre côté: êtes-vous sûr qu'au moment de l'application de la RewriteRule, la chaîne a encore une barre oblique avant title | id? Sinon, il ne sera pas apparié. BTW: Notez que je ne suis pas un gourou .htaccess, donc je pourrais faire de mauvaises hypothèses partout. – balpha