2012-06-27 4 views
0

I'im essayant de faire un système d'administration pour un site, mais les ruines htaccess il D:.htaccess ignorer le dossier

La partie admin est dans un dossier nommé admin.

Mes htacces à jour:

Options +FollowSymLinks -Indexes 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 


RewriteRule ^(admin)$ admin/index.php 
RewriteRule ^([\wæøå]+)$ index.php?page=$1 [QSA] 
RewriteRule ^([\wæøå]+)/$ index.php?page=$1 [QSA] 

RewriteRule ^(nyhed)/([\w\d\-æøå]+)$ index.php?page=$1&nyhed=$2 [QSA] 
RewriteRule ^(nyhed)/([\w\d\-æøå]+)/$ index.php?page=$1&nyhed=$2 [QSA] 

Mais ne me laisse pas dans ce dossier?

J'ai donc fait un if dans mon index:

if($_GET["page"] == "admin"){ 
    header("location:http://google.com"); 
} 

Mais cela ne fera rien non plus, et aucune erreur D:

+0

est le dossier nommé "si" ou "admin" –

+0

@PugganSe Oups désolé. Il est nommé admin – Mobilpadde

+0

ses arrêts sur le test "RewriteCond% {REQUEST_FILENAME}! -d", comme "admin" est un "d" irectory, la règle est annulée –

Répondre

0

lignes RewriteCond peuvent être enfilées que vous avez, mais ils ont seulement un impact sur la première règle à laquelle ils viennent.

Options +FollowSymLinks -Indexes 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?page=$1 [QSA] 

Ceci enverra toutes les demandes de répertoires et de fichiers inexistants à index.php. Les fichiers et répertoires existants ne seront pas affectés. Les autres règles sont inutiles.

+0

Cela fonctionnerait, si ce n'était pas le fait , que j'ai réécrit le paramètre suivant aussi D: (Mis à jour ma question) – Mobilpadde

+0

1 - renommer le répertoire admin en cms. 2 - S'il vous plaît lire la documentation pour mod_rewrite, en particulier RewriteCond: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond – bradym

+0

désolé, était censé être nommé admin, juste une faute de frappe – Mobilpadde

0

Ceci est votre problème:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

Vous réécrivez un répertoire nommé admin qui existe obvously dans votre système de fichiers en tant que tel Apache dit:

if this path does not exist as a directory path or as a file path continue with the rewrites

C'est pourquoi il est pas tout à fait réécrire comme on pourrait s'y attendre.