2009-07-10 7 views

Répondre

3
RewriteEngine On 
RewriteBase /cut/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)$ /index.php?tag=$1 [L] 

Ce Travaillons avec cette

1

à moins que votre .htaccess situé dans le répertoire cut, il devrait être préférable d'utiliser:

RewriteRule ^cut/(.+)/?$ /cut/index.php?tag=$1 [L] 

autrement

RewriteRule ^(.+)/?$ index.php?tag=$1 [L] 

devrait faire. Il semble être le problème avec votre chaîne de substitution, il est difficile de dire exactement quelle est la cause puisque ne fonctionne pas n'est pas une description suffisante d'un problème.

+1

L'URL/cut/15 demandée n'a pas été trouvée sur ce serveur. – Waseem

+0

si elle est dans un dossier devrait-il pas: RewriteRule ^/../index.php?tag=$1 $ [L] pas testé ... –

+0

pas (+).?. – SilentGhost

0

Si vous attendez que des valeurs entières, vous devez restreindre votre modèle à ces valeurs:

RewriteRule ^([1-9][0-9]*)$ index.php?tag=$1 [L] 

Le problème avec votre modèle actuel est que ^([^/]*)$ ne correspond aussi index.php (/cut/index.php sans le préfixe de chemin par répertoire) et peut ainsi provoquer une boucle infinie.

1

Le serveur charge-t-il réellement .htaccess? Vous pouvez vérifier cela en jetant les ordures à la fin du fichier et en vérifiant si vous avez une erreur.

Si ce n'est pas le cas, AllowOverride est probablement défini sur None quelque part plus haut dans l'arborescence. Essayez de déclarer un <Directory /path/to/cut> quelque part dans le fichier de configuration principal de votre Apache et de lui ajouter AllowOverride All.