Htaccess inactif (Mac os X Leopard Apache)

Fermé
Marti - 29 déc. 2007 à 23:52
 hvtl - 13 mai 2008 à 20:16
Bonjour,
Ou plutôt bonsoir,

Je me permet de poster un petit message pour lancer un appel d'aide.
Après 2 journées infructueuses je commence à craquer..

Donc voilà j'ai d'abord travailler à partir d'un tutoriel de JDN développeur pour faire de l'Url Rewriting
http://www.journaldunet.com/developpeur/tutoriel/php/020407php_urlrewriting.shtml

Tout fonctionnait bien, aussi bien en local sur mon serveur apache que sur mon hébergement (ovh)

Puis je me suis dis qu'au lieu de faire une redirection avec un système de forcer un faux dossier vers une page:
du style http://www.domaine.com/web/page_1_lg.html

pour qu'en suite le fichier web interprète l'adresse html grâce au fichier htaccess contenant:
<FilesMatch "^web$">
ForceType application/x-httpd-php
</FilesMatch>

Je me suis donc dis de directement interpréter les fichiers .html vers le fichier index.php et les interpréter
pour cela je me suis inspiré de cette page web:
https://www.webmaster-hub.com/publications/referencement-la-gestion-des-sessions-et-des-langues-en-phpmysql/

Sans utiliser le système de base de donnée.
J'ai donc fait un fichier .htaccess qui me permettait de remplacer des url page1_1_fr.html en index.php?url=page1_1_fr
que j'interprétais ensuite.

le fichier htaccess est comme ça:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*).html index.php?url=$1 [L]

Je test, ça ne marche pas en local mais bien en ligne:
http://www.125production.com/MARTI/urlrewriting/page1_1_fr.html
(dossier de teste ne faites pas attention au include qui déconne, vous pouvez voir en haut qu'il reçoit bien les 3 valeurs de l'url)

Donc je me dis que mon serveur est mal réglé et c'est là que je n'arrive pas à avancer.
J'ai déjà un peu chipoté sur un serveur, j'ai lu le plus de tuto que j'ai pu mais rien n'y fait...
Même en essayant de mettre des erreurs dans mon fichier htaccess volontairement, il ne dis pas qu'il y a des erreurs.
Pourtant il fonctionne pour la première requête.

Je me permet de coller le code du fichier httpd.conf

LoadModule rewrite_module libexec/apache2/mod_rewrite.so


DocumentRoot "/Users/Marti/Sites"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from All
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#

<Directory "/Users/Marti/Sites">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes +FollowSymLinks +MultiViews
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

####
AccessFileName .htaccess
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
Order allow,deny
# Deny from all
Allow from all
Satisfy All
</FilesMatch>

Vous l'avez peut-être remarqué mais j'ai donné tout les droits et rien n'y change...

Donc voilà mon problème si une personne bien intentionnée pouvait m'aider je lui serais très reconnaissant ;)

Merci

Configuration:
Mac os X
Version 10.5.2
Apache 2.0 Handler
PHP Version 5.2.4
A voir également:

1 réponse

Bonjour
J'ai eu le même bug. Leopard 10.5.2 et Apache 2.2 livré en standard;

La solution que j'ai trouvée consiste à définir :

- le htaccess dans un sous répertoire de mon répertoire défini dans apache
- un nouveau hosts dans le répertoire etc/ du mac (via teminal et sudo commande)
- un Virtual-hosts vers un repertoire à déclarer dans le répertoire etc/apache2/extra (via teminal et sudo commande)
- modifier le httpd.conf dans le répertoire etc/apache2/ (via teminal et sudo commande)

<Directory "/Library/WebServer/Documents"> devient ma directory + repertoire du vhost genre

<Directory "/Library/WebServer/Documents/Monmegasite">

Puis je modifie cette ligne comme ceci Options Indexes FollowSymLinks
#MultiViews

enfin je modifie ceci en AllowOverride All

je relance apache. je tape mon nouveau hosts toto.local qui pointe vers le répertoire donc Monmegasite il s'affiche. je teste une URL rewritée et ça marche.

J'espère que ça aidera et évitera des galères !
1