.htaccess使用Twist清理URL

时间:2011-11-15 18:07:53

标签: .htaccess url-rewriting

我有一个这样的网址:/pages/join.php我需要通过.htaccess重写为:/ join

我正在通过以下方式做到这一点:

RewriteRule ^join$ /pages/join.php [L]

但我也想确保如果用户或蜘蛛试图直接访问/pages/join.php,它将被强制执行:/ join所以没有人应该在浏览器中看到/pages/join.php。这怎么可能?

1 个答案:

答案 0 :(得分:0)

更新(再次)

RewriteCond  %{REQUEST_URI}  ^/join$
RewriteRule .* /join.php?_internal [QSA,L]

RewriteCond %{QUERY_STRING} !_internal
RewriteCond %{REQUEST_URI} /join.php
RewriteRule .* /page_not_found.php [L]

另一个(更安全)选项是将其添加到join.php文件的顶部:

<?php
if ($_SERVER['REQUEST_URI'] == '/join.php') die('NO DIRECT ACCESS!');