Salut les gens @ stackoverflow,.htaccess RewriteRule ne fonctionne pas
Peut-être que j'ai une erreur fondamentale sur le fonctionnement de RewriteRule. Ou peut être pas. Néanmoins, j'essaie de comprendre cela maintenant pendant deux jours, sans aucun progrès.
Telle est la situation currrent:
J'ai un site Joomla avec SEF et mod_rewrite activé.
Il en résulte l'URL: mysite.com/index.php?option=com_remository & Itemid = 7
réécrite à être:
mysite.com/sub-directory/sub-directory/0000-business-fichiers/
ce sont les lignes qui sont actuellement utilisés dans mon .htaccess (tous Joomla standard)
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([^\-]*)\-(.*)$ $1 $2 [N]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
# RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
C'est ce que je veux atteindre:
Lorsqu'un visiteur utilise cette URL répertoire mysite.com/sub/sous-répertoire/0000 fichiers commerciaux/
il devrait le conduire à la bonne page . Bien que je sache que ce n'est pas la meilleure idée d'utiliser des espaces dans une URL, je suis confronté au fait que ces URL «spacieuses» sont utilisées dans un PDF, qui a déjà été publié. Je pensais pouvoir utiliser mod_rewrite pour réécrire ces URL. Mais tout ce que je reçois est « page non trouvée »
J'ai ajouté cette règle au-dessus du fichier .htaccess:
RewriteRule ^([^\-]*)\-(.*)$ $1 $2 [N]
Mais cela ne fonctionne pas. Qu'est-ce que je fais mal? Ou, aussi possible, ai-je manqué le point sur quand et comment utiliser mod_rewrite?
MFG, Eric