2010-06-20 7 views
1

La règle ci-dessous j'ai pris de here et l'a modifié (très peu) de sorte qu'il ajoute une barre oblique après avoir supprimé l'extension de fichier php.rediriger avec mod-rewrite

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)/$ $1.php 

Ainsi, l'url Domain.com/file.php ressemblera Domain.com/file/

Et cela fonctionne très bien tant que j'ai un lien ou tapez directement Domain.com/file/ mais je veux garder tous mes liens vers mes fichiers php. Donc, je veux quelqu'un pour rediriger Domain.com/file/ si quelqu'un va Domain.com/file.php

Mais lorsque je tente de rediriger (si je le fais correctement)

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)/$ $1.php [R=301,L] 

Mais il ne redirige pas. :(

Je ne suis pas sûr si je rediriger correctement ou si je suis tout simplement pas le droit de le faire. Tout conseil est génial.

Répondre

0

Je ne suis pas tout à fait sûr comment cela fonctionne avec htaccess , mais vous pouvez toujours utiliser simplement php en font un fichier et l'inclure au sommet de toutes vos pages.

<?php  
    $page = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1); 
    if(substr($page, -4)=='.php'){ 
    $pageURL = 'http'; 
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
     $pageURL .= "://"; 
    if ($_SERVER["SERVER_PORT"] != "80") { 
     $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]; 
    } else { 
     $pageURL .= $_SERVER["SERVER_NAME"]; 
    } 
    header("Location: $pageURL/" + substr($page, 0, -4) ); 
    } 
?> 

EDIT: Si vous ne se soucient pas de ce que l'utilisateur voit dans la barre d'adresse, il suffit d'ajouter un [R] (essayez d'enlever la partie = 301, L)

+0

Merci d'avoir répondu! ... Mais je voudrais vraiment J'aime utiliser .htaccess parce que je n'aurai pas à éditer tous les fichiers (c'est la seule raison pour laquelle je veux rediriger ou je pourrais aussi changer tous mes liens) – SuperPaperSam

+0

Voir la réponse éditée. Ce n'est pas testé, cependant. –

+0

Ça ne marche pas (j'ai essayé ça avant d'utiliser R = 301, L) et je l'ai juste essayé de nouveau. – SuperPaperSam