重写规则以重定向到文件而不是具有相同名称的文件夹

时间:2015-11-28 12:30:08

标签: .htaccess

我正在开发一个新网站,我希望以下网址/newsite/products重定向到/newsite/products/product.php

我的.htaccess文件如下:

RewriteEngine On
RewriteRule ^newsite/products$ /newsite/products/product.php

我的问题是products内已有一个名为newsite的文件夹,当请求newsite/products时,它会尝试打开该文件夹,而不是转到php文件。

我明白了:

Forbidden
You don't have permission to access /newsite/products/ on this server.

有没有办法让这项工作?

编辑:请求的网址为:http://example.com/newsite/products.htaccess的位置位于根目录中。

1 个答案:

答案 0 :(得分:0)

您需要关闭目录斜杠才能重写文件:

尝试:

DirectorySlash off
RewriteEngine On
RewriteRule ^newsite/products$ /newsite/products/product.php [NC,L]

不要在规则模式中添加尾部斜杠

/newsite/products

将重写为

 /newsite/products/product.php

/newsite/products/

将打开您的产品"目录

注意 - 这不是一个安全的解决方案,如果您删除规则并且DirectorySlash关闭,您的索引文件将被忽略,所有目录将开始列出文件和文件夹。