我在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
的内容谢谢;)
答案 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