Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[RESOLU] Rewrite URL = page 404
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.9.3
#~ Nom de l'hébergeur :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.3
#~ Installed Modules:
#~ * CMSMailer: 2.0.1
#~ * FileManager: 1.1.0
#~ * MenuManager: 1.7.5
#~ * ModuleManager: 1.4
#~ * News: 2.11.1
#~ * nuSOAP: 1.0.2
#~ * Printing: 1.1.2
#~ * Search: 1.6.10
#~ * ThemeManager: 1.1.4
#~ * TinyMCE: 2.8.3
#~ * Gallery: 1.4.4
#~ * FormBuilder: 0.7
#~ * EditArea: 0.2.9
#~ * Showtime: 2.0.2
#~ * CGExtensions: 1.23
#~ * CGSimpleSmarty: 1.4.7
#~ * CGGoogleMaps: 2.1.3
#~ * JQueryTools: 1.0.10
#~ Config Information:
#~ * php_memory_limit: 64M
#~ * process_whole_template: false
#~ * output_compression: false
#~ * max_upload_size: 64000000
#~ * default_upload_permission: 664
#~ * url_rewriting: mod_rewrite
#~ * page_extension: .html
#~ * query_var: page
#~ * image_manipulation_prog: GD
#~ * auto_alias_content: true
#~ * locale:
#~ * default_encoding: utf-8
#~ * admin_encoding: utf-8
#~ * set_names: true
#~ Php Information:
#~ * phpversion: 5.2.12
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * memory_limit: 64M
#~ * max_execution_time: 30
#~ * output_buffering: On
#~ * safe_mode: Off (Faux)
#~ * file_uploads: On (Vrai)
#~ * post_max_size: 8M
#~ * upload_max_filesize: 2M
#~ * session_save_path: /tmp (1777)
#~ * session_use_cookies: On (Vrai)
#~ * xml_function: On (Vrai)
#~ Server Information:
#~ * Server Api: cgi
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.91
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~



Bonjour j'ai réussi à récrire les URLs, mais maintenant mes pages sont tous des 404.

J'ai bien pris le temps de faire une recherche sur le forum. J'ai trouvé un résultat similaire mais j'ai pas compris comment le gars à réussi. http://www.cmsmadesimple.fr/forum/viewtopic.php?id=3013

J'ai bien crée un fichier .htaccess que j'ai déposé à la racine du dossier.
Mon site est bien www.monsite.com/kiki
Mon hébergeur accepte bien le mod_rewrite. (www.iweb.com)

Code :
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /kiki

# 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]

J'ai bien modifié le fichier config.php.
Code :
#------------
#URL Settings
#------------

#What type of URL rewriting should we be using for pretty URLs?  Valid options are:
#'none', 'internal', and 'mod_rewrite'.  'internal' will not work with IIS some CGI
#configurations. 'mod_rewrite' requires proper apache configuration, a valid
#.htaccess file and most likely {metadata} in your page templates.  For more
#information, see:
#http://wiki.cmsmadesimple.org/index.php/FAQ/Installation/Pretty_URLs#Pretty_URL.27s
$config['url_rewriting'] = 'mod_rewrite';

#Extension to use if you're using mod_rewrite for pretty URLs.
$config['page_extension'] = '.html';

#If using none of the above options, what should we be using for the query string
#variable?  (ex. http://www.mysite.com/index.php?page=somecontent)
$config['query_var'] = 'page';

Dans l'admin Administration du site / Préférences globales / Paramètres de la liste des pages.
Afficher la colonne "Alias" : oui
Afficher la colonne "URL : oui

Dans l'admin Administration du site / Préférences globales / Paramètres des contenus.
Créer automatiquement les URLs des pages : oui
Créer automatiquement les URL courtes : oui
URLs des pages requises : oui

Je prend bien le temps de vider la cache du CMS dans Admin
Administration du site / Préférences globales / Paramètres avancés / vider la cache.

En plus de vider la cache de mon navigateur.

Suis-je prêt du but? Que manque-t-il?

Merci :-)
#2

dans ton config.php tu donnes une extention à tes pages : .html

Code :
$config['page_extension'] = '.html';

dans ton .htaccess tu ne récupère pas cette extention

Code :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

ce qu'il te faut c'est relire le tuto sur le wiki par ce que j'ai pas le bon code en tête, et cherche ces 3 lignes du .htaccess qui sont utilisées dans le cas de redirection avec .htaccess

J'ai pas chercher + loin mais déjà il y a cette erreur à corriger
#3

Possibilités de définir les URLs (V1.6+) et V1.9.x
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=2042

Citation :J'ai bien crée un fichier .htaccess que j'ai déposé à la racine du dossier.
du dossier /kiki
alors
RewriteBase /kiki ------------> Ne sert à rien

J-C Etiemble v 2.2.xx
#4

Bonjour, je fais pareil que toi. Voici mon htaccess
Tout fonctionne


Code :
# BEGIN Optional settings

# Turns off directory browsing
# not absolutely essential, but keeps people from snooping around without
# needing empty index.html files everywhere
Options -Indexes

# Deny access to config.php
# This can be useful if php ever breaks or dies
# Use with caution, this may break other functions of CMSms that use a config.php
# file.  This may also break other programs you have running under your CMSms
# install that use config.php.  You may need to add another .htaccess file to those
# directories to specifically allow config.php.
<Files "config.php">
order allow,deny
deny from all
</Files>

# Sets your 403 error document
# not absolutely essential to have,
# or you may already have error pages defined elsewhere
ErrorDocument 403 /forbidden403.shtml

# No sense advertising what we are running
ServerSignature Off

# END Optional Settings

# BEGIN CMSMS and Rewrite Rules
# Make sure you have Options FollowSymLinks
# and Allow on

RewriteEngine On

# Might be needed in a subdirectory
#RewriteBase /

# URL Filtering helps stop some hack attempts
#IF the URI contains a "http:"
RewriteCond %{QUERY_STRING} http\: [OR]
#OR if the URI contains a "["
RewriteCond %{QUERY_STRING} \[ [OR]
#OR if the URI contains a "]"
RewriteCond %{QUERY_STRING} \] [OR]
#OR if the URI contains a "<script>"
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#OR script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#OR any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^.*$ - [F,L]
# END Filtering

# CMSMS Rewriting
# Set assume mod_rewrite to true in config.php and clear CMSMS cache
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
# END CMSMS

# END Rewrite rules
#5

attention romainduweb, est ce que tes pages sont en .html ? j'ai pas l'impression, et du coup ca signifie que ton .htaccess n'est pas utilisable avec un simple copier/coller
#6

Il y a quelque chose qui porte à confusion.

Si je regarde cette page.
http://wiki.cmsmadesimple.org/index.php/...ty_URL.27s
Ça suggère lorsque l'on veut une extension .htm à nos fichier d'ajouter cette ligne de code.
Comme je veux un .html j'ajoute donc un "l"
Code :
RewriteRule ^(.+).html$ index.php?page=$1 [QSA]

Mais sur cette autre page. Il n'y a pas ce fameux «RewriteRule ^(.+).html$ index.php?page=$1 [QSA]» Et pourtant ca parle bien de fichier avec .html.
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=2042

jce76350 a écrit :Jolis chemins d'accès ou URLs "propres" ("url rewriting")
en ajoutant dans un fichier « .htacces » à la racine de CMSMS
RewriteEngine On
# RewriteBase / ou RewriteBase / dossier_cmsms (Suivant hébergeur !! A utiliser chez 1&1 par exemple)
# Rewrites urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
En modifiant le fichier "config.php" :
$config['url_rewriting'] = 'mod_rewrite';
$config['page_extension'] = '.html';
Vous aller obtenir :
http://monsite.com/mondossier/default_templates.html
http://monsite.com/mondossier/default_t … _tags.html (sous menu de default_templates)
Avec la version 1.9 vous avez aussi la possibilté de
- Créer automatiquement les URL courtes ( internal ou mod_rewrite)
Exemple : http://monsite.com/mondossier/index.php/url_courte (Pourtant sous menu de default_templates)
Exemple : http://monsite.com/mondossier/url_courte.html (Pourtant sous menu de default_templates)

Et cette ligne de code qui a été supprimé et qui est revenu en version 1.8.2, mais dans la version 1.9.3 elle n'est pas là par défaut. Est-ce que ca veut dire que je dois l'avoir?
#NOTA1 $config['use_hierarchy'] = true; // a été supprimée en version 1.8.0.et 1.8.1
#NOTA2 $config['use_hierarchy'] = true; // revenu en en version 1.8.2

J'ai bien essayé différentes options et toujours sans succès. Toujours en prenant soin de vider la cache de CMS et du navigateur.

C'est bien la première fois que je manipule un fichier .htaccess désolée de ne pas comprendre.
#7

non britanicus, tu as certes lu la bonne documentation, mais tu l'as mal lu.

http://wiki.cmsmadesimple.org/index.php/...ty_URL.27s

ce qui t'interesse directement (et notamment avoir des pages en .htm effectivement)

Citation : .htm page extension

This configuration will use a .htm extension for the pages. Pages will have URLs like www.example.com/page1.htm, and if use_hierarchy is turned on, nested pages (subpages) will have URLs like www.example.com/page1/page11.htm)

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# 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 ^(.+).htm$ index.php?page=$1 [QSA]

Save the file and upload it to your site's root as '.htaccess' (no file extension!).

Viens ensuite la seconde partie : là où tu confonds

Citation : Note: if you are using the News module and want publish a rss feed than you will have the following problem if you use an extension. Normally your feed is available under http://host/News/rss but with mod_rewrite turned on the server will not find anything because http://host/News/rss is not rewritten to http://host/index.php?page=News/rss. You can solve the problem in two ways.

1. add an extra rule just before the first RewriteRule:

RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [ S=1]

This rewrites just the rss feeds to the thing you need. You can add extensions like .xml or .rss
2. use a more general rewrite rule:

RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]

Now all pages with or without extension .htm will work.

Une traduction approximative qui comporte une petite erreur de typo et qui te dira que cette seconde partie est utile pour catcher les pages avec ou sans .html :

Now all pages with or without extension .htm will work.

C'est donc une manière détournée de faire fonctionner

mapage.html et
mapage

ce n'est pas ce que tu souhaites faire, je te déconseille pour l'instant de jouer avec ceci, contente toi de la première partie
#8

Jce a raison, faut lui couper le kiki Tongue
#9

@ britanicus
résolut comment c'est important ??

J-C Etiemble v 2.2.xx
#10

@JCE J'ai essayé 2 ou 3 choses. J'ai commencé par enlever le kiki, par la suite j'ai pris le code de @romainweb. Et j'ai fait le transfert du fichier .htaccess en ASCII et le tout a fonctionner. J'ai supprimé le $config['use_hierarchy'] = true;, car je l'avais ajouté.

Merci a tous pour votre aide :-) Si vous habitiez pas si loin je vous apporterais un morceau de tarte au choco.
#11

Content pour toi, tu peux toujours l'envoyer la tarte au choco :p
Sujet fermé


Atteindre :


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