.htaccess带有扭曲的干净URL
我有这样一个URL:/pages/join.php,我需要通过.htaccess重写它:/join 我通过以下几点做得很好:.htaccess带有扭曲的干净URL,.htaccess,url-rewriting,.htaccess,Url Rewriting,我有这样一个URL:/pages/join.php,我需要通过.htaccess重写它:/join 我通过以下几点做得很好: RewriteRule ^join$ /pages/join.php [L] 但我还想确保,如果用户或爬行器试图直接访问/pages/join.php,它将被迫:/join,因此任何人都不应该在浏览器中看到/pages/join.php。这怎么可能呢?再次更新: RewriteCond %{REQUEST_URI} ^/join$ RewriteRule .* /j
RewriteRule ^join$ /pages/join.php [L]
但我还想确保,如果用户或爬行器试图直接访问/pages/join.php,它将被迫:/join,因此任何人都不应该在浏览器中看到/pages/join.php。这怎么可能呢?再次更新:
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!');
不起作用。它会强制更改URL,但页面不会加载。该文件本身位于:/pages/join.php。另外,我只希望它在join页面上工作,而不是在pages文件夹中的所有页面上工作。不工作。错误:“页面重定向不正确”。我猜你不能创建这样的重定向循环。