RewriteRule htaccess和隐藏的php文件

时间:2012-11-02 10:09:14

标签: php .htaccess mod-rewrite

我在RewriteRule htaccess中遇到问题: 例: 我的php文件是main.php 我们需要在用户尝试 www.mysite.com/hello 时,然后显示 www.mysite.com/main.php 对于这个expamle,我们在.htacces中有以下代码:

# BEGIN Htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^hello/*$ main.php

但是在此代码中,如果用户可以打开 www.mysite.com/hello www.mysite.com/main.php

如果用户尝试 www.mysite.com/main.php ,则需要显示错误 404 但是如果尝试 www.mysite.com/hello < / strong>查看 main.php

的内容

谢谢;)

2 个答案:

答案 0 :(得分:0)

您需要在此处与实际请求进行匹配:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.php
RewriteRule ^ - [L,R=404]

如果需要,您可以在RewriteEngine On下添加。处理此问题的另一种方法是,可以检查 main.php 脚本中的$_SERVER['REQUEST_URI'],如果是/main.php,则不是提供内容,而是返回404响应。< / p>

答案 1 :(得分:0)

你不能404 main.php也不能把它变成/ hello因为它会进入无限循环。 您必须检查main.php中的url,如果它与hello不同,请将其重定向到/ hello