如何使用.htaccess隐藏扩展名和包含文件夹

时间:2014-02-13 14:56:22

标签: php .htaccess

我是.htaccess文件的新手,我一直试图隐藏扩展名.php和网址中的公共文件夹

换句话说,我想要这个:

site.com/public/index.php

看起来像这样:

site.com/index

我能够分别完成这两件事,但我无法同时制作它们......

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要2个规则。

首先,当您收到site.com/public/index.php的请求时,您必须通过执行此操作告诉客户发送另一个site.com/index请求:

RewriteRule ^site\.com/public/index\.php/?$ site.com/index [R=301,L]

R = 301标志表示您正在发送HTTP 301'永久移动'标头。当客户收到此消息时,他们会发送一个新请求,但site.com/index

接下来,您需要一条规则来处理site.com/index的请求,如下所示:

RewriteRule ^site\.com/index$ index.php [L]

因此,您生成的.htaccess文件应如下所示:

RewriteEngine On

RewriteRule ^site\.com/public/index\.php/?$ site.com/index [R=301,L]
RewriteRule ^site\.com/index$ index.php [L]