2010-09-05 5 views
1

J'ai un compte d'hébergement Linux Godaddy partagé. Je suppose que pour ce problème, je devrai réécrire les URL, mais ma connaissance d'Apache est assez limitée, alors s'il vous plaît excusez-moi à l'avance si la question est trop noob-ish :).Réécriture d'URL de service Web sur le compte Godaddy Linux

pour xxx.com de domaine, j'appeler mon service web PHP comme ceci:

http://service.xxx.com/catalog.php?action=getcatalog&catalogid=7 

Je veux pouvoir l'appeler comme ceci:

http://service.xxx.com/catalog/getcatalog?catalogid=7 

Depuis que j'ai plusieurs services avec plusieurs noms de paramètres, les variables de cette équation sont le nom de la page, l'action et les paramètres

(ie http://service.xxx.com/X/Y?Z=W =>http://service.xxx.com/X.php?action=Y&Z=W) Comme complication supplémentaire, certains de ces services ont plus d'un paramètre. Les questions sont les suivantes: 1. avoir un serveur partagé sans accès au fichier httpd.conf, est-ce encore possible? 2. Si oui, que dois-je faire?

TIA, Guy

Répondre

2
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(\w+)/(\w+)$ $1.php?action=$2 [L,QSA] 
</IfModule> 

la partie QSA est censé passer tout autre paramètre.

+0

@aularon merci pour la réponse rapide. Où dois-je placer cette section? Est-ce le fichier .htacess dans le répertoire du fichier php spécifique? Ai-je besoin de redémarrer le service (ce qui, bien sûr, je ne peux pas)? –

+0

Si les mêmes exemples d'URL que vous avez publiés s'appliquent, placez-les dans le fichier '.htaccess' à la racine de votre dossier public. et vous n'avez pas besoin de redémarrer le service, car Apache analyse '.htaccess' à chaque requête. – aularon

+0

Ne fonctionne pas - Je reçois un 404. –

Questions connexes