使用.Htaccess文件重定向

时间:2010-04-07 10:42:11

标签: php .htaccess

我在Ubuntu工作。(Linux)

我想从页面one.php重定向到two.php,它们位于'test'文件夹中

How can i do this, using  .htaccess file?
Any other setting is needed for this?
Or .htaccess redirection will not  work for local system

3 个答案:

答案 0 :(得分:3)

应该可以正常工作。假设网址为 http://localhost/test/one.php

RewriteEngine On
RewriteBase /test/
RewriteRule ^one\.php$ two.php [L]

这将做一个不可见的重定向 - 浏览器不会知道,也不会在URL中显示它。如果您想进行其他类型的重定向,可以在标记中指定R=###,其中###HTTP status code。例如,要执行永久重定向:

RewriteRule ^one\.php$ two.php [R=301,L]

答案 1 :(得分:1)

问题标题是“使用.Htaccess”,但在问题的最后一行你说.htacess不起作用。

所以这里是一个没有使用.htaccess的解决方案。

你可以在one.php文件中添加一个简单的函数,将标题发送到客户端(例如Web浏览器),将请求重新发送到第二个地址,例如:two.php。

打开文件one.php并在其中添加以下代码:

<?php
header('Location: two.php');
?>

确保在此代码之前打印/回显任何内容(甚至是简单的空格字符)。因为这一行将HTTP标头发送到客户端,但是如果你在这行之前输出任何内容,它就会进入正文,因此标题将被关闭。

答案 2 :(得分:0)

test文件夹中,您可以放置​​.htaccess文件,RewriteRule进行重定向:

RewriteEngine On
RewriteRule one.php two.php

这样,服务器上执行的页面就是两个.php;但浏览器中的URL仍然是one.php

根据您是否希望从用户看到此重定向,您将设置或不设置重定向代码,并使用或不使用[R]标志。


对于永久重定向,它会出现在浏览器中(即URL在浏览器的地址栏中真的会变为two.php),你可以使用:

RewriteEngine On
RewriteRule one.php two.php [R=301]


有关更多信息,您可以查看URL Rewriting Guide