2010-02-28 9 views
1

J'ai récemment refait le site de mon portfolio, et j'essaye de faire en sorte que quand quelqu'un clique sur un lien vers mon et mon vieux projet (ie /philosophy.php) il prend le nom de ce fichier (philosophie), puis l'ajoute à un indicateur d'identifiant # et charge à ma nouvelle page avec cet ID sélectionné afin qu'il défile automatiquement vers ce projet.Rediriger avec une variable

Cliquer sur le lien>http://www.studioimbrue.com/philosophy.php Redirect>http://www.studioimbrue.com/#philosophy

J'utilise ce moment: <meta http-equiv="Refresh" content="1; URL=http://www.studioimbrue.com/"> et j'ajouté #<!--#echo var="$_SERVER['PHP_SELF']" --> mais il vient juste comme (aucun).

+1

.htaccess it .. – Layke

Répondre

0

Ajouter un fichier .htaccess à la racine de votre serveur

et inclure dans le:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)\.php$ /#$1 [R=301,NE] 

Sinon, utilisez ceci:

<meta http-equiv="Refresh" content="1; URL=http://www.studioimbrue.com/#<?php echo basename($_SERVER['PHP_SELF'],'.php');?>"> 
+1

Ce sera juste ajouter philosophie.php à tout, il doit être une variable tirée du lien d'origine (donc si c'était .com/book.php il redirigerait vers .com/# book) – steve

+0

Cela redirige sans fin (au moins sur mon serveur) . Vous avez besoin de RewriteCond. Vous avez également besoin du drapeau NE (pas d'échappement) pour gérer correctement le hachage. – jasonbar

+0

Fait ........... – Pentium10

0

Si vous voulez, vous pouvez obtenir la même chose avec PHP

$newName = 'http://www.studioimbrue.com/#' . substr($_SERVER["PHP_SELF"], 1, -3); 
header('Location: $newName'); 
die(); 

Mais je pense que faire cela avec .htaccess est le meilleur moyen.

1

Vous pouvez ajouter une condition de réécriture ne permettant pas la redirection quand il est en fait un fichier avec ce nom, ainsi que la spécification de la règle de réécriture:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)\.php$ /#$1 [R=301,NC,NE]
+1

Cela fera ce que vous voulez MAIS vous devez ajouter le drapeau NE sinon votre hachage sera échappé et le navigateur ne le lira pas. f RewriteRule^([^ /] +) \. Php $/# $ 1 [R = 301, NC, NE] – jasonbar