我是.htaccess文件的新手,我一直试图隐藏扩展名.php和网址中的公共文件夹
换句话说,我想要这个:
site.com/public/index.php
看起来像这样:
site.com/index
我能够分别完成这两件事,但我无法同时制作它们......
谢谢!
答案 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]