2010-02-28 45 views
1

我最近重新做了我的投资组合网站,我试图做到这一点,当有人点击一个链接到我和旧项目(即/philosophy.php),它需要的名称文件(哲学),然后将其添加到ID指示器#并加载到我选择了该ID的新页面,以便它自动滚动到该项目。重定向与变量

点击链接>http://www.studioimbrue.com/philosophy.php 重定向>http://www.studioimbrue.com/#philosophy

我使用这个现在:<meta http-equiv="Refresh" content="1; URL=http://www.studioimbrue.com/">和我说#<!--#echo var="$_SERVER['PHP_SELF']" -->但它只是出来作为(无)。

+1

的.htaccess吧.. – Layke

回答

0

一个.htaccess文件添加到您的服务器的根

,包括这个在它:

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

否则使用:

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

这将只添加哲学.php到一切,它需要是一个从原始链接拉的变量(所以如果它是.com/book.php它将重定向到.com /#书) – steve

+0

这无休止地重定向(至少在我的服务器上) 。你需要一些RewriteCond。您还需要NE(无转义)标志来正确处理散列。 – jasonbar

+0

完成........... – Pentium10

0

如果你愿意,你可以做到同样的事情PHP

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

但我认为使用.htaccess这样做是更好的方法。

1

你可能想添加一些重写条件不允许重定向时实际上是该名称的文件,以及指定重写规则:

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

这会做你想做的事情,但是你必须添加NE标志,否则你的散列标记将被转义并且浏览器不会读取它。 f RewriteRule ^([^ /] +)\。php $ /#$ 1 [R = 301,NC,NE] – jasonbar