2014-07-23 2 views
0

Je crée actuellement un site Web qui utilise le formatSuppression du répertoire d'URL tout en conservant les fichiers du répertoire courant

www.fakewebsite.com/projects/CompanyName/ProjectName/

pour créer un lien vers projets spécifiques basés sur une entreprise. Le problème est que je préférerais ne pas avoir de «projets» visibles pour l'utilisateur final. Donc, je voudrais mettre l'URL ci-dessus dans

www.fakewebsite.com/CompanyName/ProjectName/

Le problème est que je les fichiers dans le répertoire de base de « www.fakewebsite.com "qui sont essentiels pour le site web. Le CompanyName/ProjectName est généré via un script PHP qui remplit et crée automatiquement les répertoires. Je comprends de quelques recherches de StackOverflow que je peux le faire avec .htaccess, mod rewrite ou PHP mais je ne sais pas quelle application serait le correctif "correct" qui serait maintenable. J'ai un Windows Server 2012 IIS avec PHP 5.3 installé.

+0

mod rewrite est le chemin à parcourir. Pour implémenter la réécriture, vous devez modifier le fichier .htaccess. – Fallen

+0

Appréciez votre réponse. Pourriez-vous fournir un exemple (je ne m'attends pas à ce que du code de travail ou des extraits modifiables, j'aimerais apprendre) sur la manière exacte de rediriger sans que les fichiers d'origine dans le répertoire de base ne soient inaccessibles? Toutes mes solutions actuelles ne fonctionnent pas ou ne me permettent pas d'accéder au répertoire de base. – Archelaus

+0

Après encore plus de recherches (pages suggérées) j'ai trouvé un outil utile qui vous permet de tester vos réécritures de mod sans avoir à mettre constamment à jour votre .htaccess. http://htaccess.madewithlove.be/ Mon problème semble être résolu avec le code suivant. RewriteRule^projets /(.*)/(.*)/$ 1/$ 2 [L, R = 301] L] – Archelaus

Répondre

0

Essayez d'ajouter ces règles au fichier htaccess dans la racine de votre document:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /+projects/([^\?\ ]*) 
RewriteRule^/%1 [L,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^projects/ 
RewriteRule ^(.*)$ /projects/$1 [L] 
+0

Cela a fonctionné mieux que mon implémentation précédente, et fonctionne fonctionnellement. J'apprécie votre aide avec mon problème. – Archelaus

Questions connexes