1

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

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

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

我需要如果用户尝试www.mysite.com/main.php然后显示错误404但如果尝试www.mysite.com/hello查看main.php的内容

谢谢你;)

4

2 回答 2

0

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

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

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

于 2012-11-02T10:44:45.927 回答
0

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

于 2012-11-02T10:48:46.913 回答