Php 检查站点是否被.htaccess重定向到中
我在.htaccess文件中有以下规则:Php 检查站点是否被.htaccess重定向到中,php,.htaccess,Php,.htaccess,我在.htaccess文件中有以下规则: RewriteRule orders\.html orders.php [L,NC] 我如何在orders.php中检查用户是否输入orders.html或orders.php作为请求URL 如果用户在地址栏中有orders.php,我想将其重定向到orders.html。为了在重写后从php获取最初请求的URI: 请尝试$\u服务器['REDIRECT\u URL']。根据我的经验,Apache的mod_rewrite模块为CGI填充REDIRECT
RewriteRule orders\.html orders.php [L,NC]
我如何在orders.php中检查用户是否输入orders.html或orders.php作为请求URL
如果用户在地址栏中有orders.php,我想将其重定向到orders.html。为了在重写后从php获取最初请求的URI:
$\u服务器['REDIRECT\u URL']
。根据我的经验,Apache的mod_rewrite模块为CGI填充REDIRECT_URL
变量$\u服务器['REQUEST\u URI']
也应该很有用print\r($\u服务器)
查看您可以使用的所有变量
如果地址栏中有orders.php,我想将用户重定向到orders.html
如果您正在寻找.htaccess解决方案,请尝试下面的代码
RewriteEngine on
RewriteBase /
#if the user requested orders.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /orders\.php [NC]
#301 redirect them to orders.html
RewriteRule . orders.html [L,R=301]
#existing rule to rewrite .html to .php
RewriteRule ^orders\.html$ orders.php [L,NC]
@贾斯汀:浏览器对
orders.php
的请求触发。不执行重写。PHP脚本检测到请求了orders.PHP
,并要求浏览器重定向到orders.html
。然后,从浏览器请求orders.html
,触发重写规则,在内部重定向到orders.php
(尽管用户仍然在URL栏中看到orders.html
)。在这里我看不到无限重定向的可能性,您的方式只会将用户重定向到一个不存在的非PHP页面。@LightnessRacesinOrbitthe_REQUEST
是唯一一个从原始请求设置后不可变的变量,因此它不会受到后续重写测试的影响。那么你认为这对解决这个问题有用吗?嗯,它并没有达到预期的效果。它确实会重定向,但导航到order.php后,地址是(因此服务器上有orders.php文件的完整路径)。也许我做错了什么?@LightnessRacesinOrbit是的,这似乎很相关,所以我发布了一个answer@bpiec您的.htaccess是否与上述内容完全相同?RewriteBase/
?请求URI就是我所需要的,谢谢!为什么这不在phpinfo()中?!在我写这篇文章之前我已经看过了。