我在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
答案 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