Aller au contenu

urlrewriting et dossier virtuel


Sujets conseillés

Bonjour à vous tous,

Voici mon souci, je viens de mettre en place l'urlrewriting sur un site en oscommerce, ma règle de réécriture me permet de mettre le nom des catégories en dossier et sous dossier, et le nom du produit en fichier. Seulement voilà mon problème, c'est que ces dossier n'existe pas réellement dans l'arborescence de mon site, et toute mes images on leur chemin en relatif, donc maintenant apache cherche les images dans des répertoir qui n'existe pas. comment faire pour lui dire de partir de la racine et non du dossier courant ???

Le plus étrange c'est que j'ai un autre site sous oscommerce également qui ne pose aucun problème, mais pas moyen de trouver la différence entre l'un et l'autre :wacko:

merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il serait plus facile de te répondre si tu nous communiquais le contenu de ton fichier .htaccess (en entier, tu asles baslises CODE et CODEBOX à disposition en fonction de la longueur de ce fichier), afin qu'on puisse te dire comment modifier ta règle efficacement.

Lien vers le commentaire
Partager sur d’autres sites

ok, je veux bien vous le donner mais je doute que ca aide car l'urlrewriting est géré par un script php.

<IfModule mod_setenvif.c>
<IfDefine SSL>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</IfDefine>
</IfModule>

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule admin - [L]
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !^/$
RewriteRule !\.(flv|swf|gif|php|css|jpg)$ /rewrite.php

Lien vers le commentaire
Partager sur d’autres sites

Hé bien un peu de logique, c'est de ton fichier rewrite.php dont nous avons besoin ou plutôt la partie que tu as modifiée afin de rendre la réécriture possible (la/les règle(s) que tu as créée(s) en PHP). Si tu ne donnes pas les éléments qui sont la base de ton problème personne ne pourras t'aider à le résoudre.

Lien vers le commentaire
Partager sur d’autres sites

désolé, mais je ne vois toujours pas en quoi ca peux aider, c'est exactement le meme code que celui de mon autre site qui fonctionne, j'ai fais un copier collé pour en etre sur avant de poster mon message.

<?php
/*
Some parts Copyright 2004 osCommerce
Remainder Copyright 2004 eCartz.com, Inc.
*/
include('includes/application_top.php');

if ($REQUEST_URI == '/catalog/') {
tep_redirect(tep_href_link(FILENAME_DEFAULT));
}

if ($REQUEST_TYPE == 'SSL') {
$comparison_array = explode('/', HTTPS_SERVER . DIR_WS_HTTPS_CATALOG, 4);
} else {
$comparison_array = explode('/', HTTP_SERVER . DIR_WS_HTTP_CATALOG, 4);
}
$comparison = $comparison_array[3];

$parts = explode('?', str_replace($comparison, '', $REQUEST_URI), 2);
$list = explode('/', preg_replace(array('#^/#', '#/$#'), '', $parts[0]));
if (sizeof($parts) == 2) {
$parameters = explode('&', $parts[1]);
foreach ($parameters as $pair) {
$pieces = explode('=', $pair);
$HTTP_GET_VARS[$pieces[0]] = $pieces[1];
}
}
$current_category_id = 0;
$cPath_array = array();
$count = 0;
foreach ($list as $piece_encoded) {
$count++;
if(ereg(".html",$piece_encoded)){
$piece_encoded = substr($piece_encoded, 0, -5);
}
$piece = urldecode(preg_replace(array('/[-]/', '/%20/'), array(' ', '%2F'), $piece_encoded));
if ($piece == 'catalog') {
continue;
}
$query_string = "select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name='" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'";
$category_query = tep_db_query("select cd.categories_id from categories_description cd, categories c where cd.categories_id=c.categories_id and cd.categories_name='" . tep_db_input($piece) . "' and c.parent_id='" . (int)$current_category_id . "'");
if ($category_array = tep_db_fetch_array($category_query)) {
$cPath_array[]= $category_array['categories_id'];
$breadcrumb->add($piece, tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array)));
$current_category_id = $category_array['categories_id'];
} else {
if ($current_category_id != '0') {
$parent_where_string = " and p2c.categories_id='" . (int)$current_category_id . "'";
} else {
$parent_where_string = '';
}
$product_query = tep_db_query("select pd.products_id from products_description pd, products_to_categories p2c, products p where p.products_id = pd.products_id and p.products_status = '1' and pd.products_id=p2c.products_id and pd.products_name='" . tep_db_input($piece) . "'" . $parent_where_string);
if ($product_array = tep_db_fetch_array($product_query)) {
if (sizeof($cPath_array) < 1) {
$cPath = tep_get_product_path($product_array['products_id']);
$cPath_array = explode('_', $cPath);
for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
$categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
if (tep_db_num_rows($categories_query) > 0) {
$categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
} else {
break;
}
}
} else {
$cPath = implode('_', $cPath_array);
}
$breadcrumb->add($piece, tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $product_array['products_id']));
$HTTP_GET_VARS['products_id'] = $product_array['products_id'];
$PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_PRODUCT_INFO;
$PHP_SELF = $PHP_SELF_REWRITE;
include(FILENAME_PRODUCT_INFO);
exit();
} else {
$manufacturer_query = tep_db_query("select manufacturers_id from manufacturers where manufacturers_name='" . tep_db_input($piece) . "'");
if ($manufacturer_array = tep_db_fetch_array($manufacturer_query)) {
$breadcrumb->add($piece, tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', $cPath_array) . 'manufacturers_id=' . (int)$manufacturers_array['manufacturers_id']));
$HTTP_GET_VARS['manufacturers_id'] = $manufacturer_array['manufacturers_id'];
if ($count == sizeof($list)) {
$HTTP_GET_VARS['filter_id'] = $current_category_id;
$PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_DEFAULT;
$PHP_SELF = $PHP_SELF_REWRITE;
$cPath = implode('_', $cPath_array);
$HTTP_GET_VARS['cPath'] = $cPath;
include(FILENAME_DEFAULT);
exit();
}
} else {
reset($list);
tep_redirect(tep_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . implode('+', $list)));
}
}
}
}
$cPath = implode('_', $cPath_array);
$HTTP_GET_VARS['cPath'] = $cPath;
$PHP_SELF_REWRITE = dirname($PHP_SELF) . '/' . FILENAME_DEFAULT;
$PHP_SELF = $PHP_SELF_REWRITE;
include(FILENAME_DEFAULT);

?>

merci quand meme de prendre du temps pour m'aider

Modifié par genmin
Lien vers le commentaire
Partager sur d’autres sites

La formulation de ta question, "ma règle de réécriture me permet de", m'avait laissé pensé que tu avais développé le système de réécriture toi-même :)

Enfin bref... tu peux spécifier ce code (HTML) dans les pages qui seront concernées :

<base href="http://www.tonsite.com/" />

(Placé entre <head> et </head>).

Les navigateurs vont ensuite utiliser ce chemin comme base pour "résoudre" les chemins relatifs... Sinon tu peux aussi spécifier tous les liens, images, CSS, ... en URL absolues (cela fait quand même plus de travail).

Lien vers le commentaire
Partager sur d’autres sites

tu es mon héro TheRec, tu me sauve la vie, je me voyais déjà entraint de modifier tout les chemin un à un :sick:

ca marche nickel, j'ai juste eu à rajouter ta ligne de code dans le fichier hearder_tag.php qui est automatiquement appelé dans toute les pages, et voilà le travail.

Encore merci :thumbsup:

désolé mais je ne trouve pas pour rajouter [resolu] dans le titre

Modifié par genmin
Lien vers le commentaire
Partager sur d’autres sites

De rien, pas de problème... je t'avoue que je n'avais pas saisi tout de suite la finalité de ton problème... enfin, c'est réglé :)

Pour modifier le titre de ton sujet, il n'y a pas besoin de le faire sur le Hub. Dan ne tient pas à être premier sur ce terme dans tous les moteurs de recherches ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...