Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
URL Rewriting les liens sont "not found"
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.7.1
#~ Nom de l'hébergeur : local
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,
Je me heurte au problème des URL Rewriting et après maints essais, et de recherche sur le forum, aucun des posts pourtant semblables au mien n'ont été résolu pour moi.

J'ai modifié mon config.php :
Citation :$config['url_rewriting'] = 'mod_rewrite';
$config['page_extension'] = '.html';
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';
Puis mon HTACCESS selon celui présent dans le dossier de documentation :
Citation :# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"

#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off

# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#
Options +FollowSymLinks
#
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /

#
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
Progression par rapport à mes autres essais, j'accède tout de même à la page d'accueil ^^ Lorsque je clique sur un lien quelconque, j'ai bien dans la barre d'adresse une URL de type http://www.monsite/dossier/page.html , mais j'ai droit à un "not found" à la place de ma page...

J'ai vidé les caches, essayé avec multiples navigateurs... J'ai pourtant suivi la documentation, mais est-ce que j'aurais oublié autre chose dans mon code ? Avez-vous une idée ?

Merci beaucoup de votre aide.

Aurore
#2
re,

comme tu ne donne pas d'url pour voir Wink
peut être
RewriteBase /dossier comme spécifié (#Sub-dir e.g: /cmsms) et non RewriteBase /
J-C Etiemble v 2.2.xx
#3
Le site est encore en local, du coup je peux pas vraiment poster d'URL...
Si c'est pour la forme qu'elles ont :

http://monsite.com/produits.html
http://monsite.com/produits/produit1.html

Sinon, j'ai fait un phpinfo() à tout hasard et je n'ai pas le module d'apache "mod_rewrite" .... Cela peut-il être la raison ? Si c'est le cas je n'ai plus qu'à espérer que l'hébergeur aussi ! (OVH je crois...)
#4
Tu as trouvé. Tu peux activer ce module dans le fichier httpd.conf en supprimant le dièse devant la ligne LoadModule rewrite_module modules/mod_rewrite.so
Si tu es sous wamp : clic gauche sur le tachygraphe => Apache => httpd.conf
Ne pas oublier de relancer les services pour que la modification soit prise en compte.
#5
OVH possède le mod_rewrite activé de mémoire Wink
#6
Merci pour ces infos !
En fait je ne suis pas sous wamp, mais sur un serveur interne.
En attendant de pouvoir voir ce que les gars peuvent faire, je vais tenter l'url rewriting en local avec wamp, je vous en donne des nouvelles !
#7
Avec Wamp en local, je n'ai plus aucun accès au site pas même à la page d'accueil... (internal server error, que ce soit sur la page d'accueil, ou dans l'administration, donc impossible de vider le cache, pour couronner le tout !)

HTACCESS :
Citation :Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# Redirection 301 de toutes les demandes qui ne contiennent
# pas un point ou un slash
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Régles de réécriture pour la forme /parent/enfant/
# mais réécrit seulement si l'URL demandée n'est pas un fichier ou un répertoire
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Config.php :
Citation :$config['url_rewriting'] = 'mod_rewrite';

$config['page_extension'] = '';

$config['use_hierarchy'] = true;

$config['query_var'] = 'page';
(c'est le code qui vient de : http://wiki.cmsmadesimple.org/index.php/...ty_URLs/fr )

Comme je ne connais pas du tout les règles de réécriture, je suis obligée de faire du copié collé... L'un de vous a une idée ? Ou un code pour htaccess et config.php qui marche en local ? J'imagine qu'en local c'est universel ^^ (si déja ça marche en local ca sera p'têtre moins méchant après ^^")


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)