2010-01-17 7 views
2

J'essaye d'implémenter une URL de style REST avec un mod-rewrite activé dans .htaccess. Il y a un peu de kicker que je développe dans un environnement de test (nouveau compte cpanel). Voici le .htaccess:Réécriture .htaccess avec le style REST URL 500 erreur

RewriteEngine on 

#REMOVE THIS LINE ON SITE LAUNCH! 
RewriteBase /~myNewAccount/ 

#Hide .php extensions for cleaner URLS 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Options All -Indexes 

L'URL que je peux utiliser ressemble à ceci:

www.example.com/~myNewAccount/index.php/id/50 

Je peux accéder à la PATH_INFO, mais lorsque je tente de le faire:

www.example.com/~myNewAccount/index/id/50 

... Je reçois une erreur interne du serveur 500. J'ai essayé d'implémenter le solution found here par Gumbo mais ça mouille les choses.

Des idées sur ce qui pourrait être à l'origine de cela?

Répondre

2

Essayez cette règle:

RewriteRule ^index(/.*)?$ index.php$1 [L] 

Ou si vous ne voulez pas index être dans le chemin d'URL du tout:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* index.php/$0 [L] 
+0

problème est que je vais avoir beaucoup de urls de base (similaire à index.php mais avec d'autres noms) et je préférerais ne pas avoir de règle pour chaque page. Est-ce possible? – jay

+0

@jeerose: Si vous utilisez des chemins relatifs dans votre substitution, ils dépendront toujours du chemin de base. – Gumbo

Questions connexes