发布网友 发布时间:2022-04-06 00:40
共5个回答
热心网友 时间:2022-04-06 02:10
Apache服务器上有一个模块(非缺省):
mod_rewrite:
URL REWRITE功能之强大足够写上一本书了,哇咔咔
如果,当我需要将news.asp?id=234映射成news/234.html时,只需设置:
RewriteRule /news/(/d+)/.html /news/.asp/?id=$1[N,I], 这样就把/news/234.htm这样的请求映射成了/news?id=234.
看起来变成静态化了,其实是请求的原来的带id=的链接额
总结一句,改apache配置文件 要先启用改模块
在httpd.conf文件里找
LoadMole rewrite_mole moles/mod_rewrite.so
去掉前面的#号额
再替换规则:
RewriteRule /news/(/d+)/.html /news/news/.php/?id=$1 [N,I]
当然要根据具体情形修改,你用的不是news额追问你看懂我的提问了吗
答非所问
热心网友 时间:2022-04-06 03:28
看看下面的是否满足你的要求。
不知道,你的这个当前和非当前?如何区分的? 所以我写了一个根据实际物理名称进行区分。
<?
$pageStyle = "默认样式";
//获取当前URL
$ManUrl = substr($_SERVER["REQUEST_URI"],1);
//正则替换规则
$RuleArray = array();
$RuleArray[] = array("/index.php\?main_page=([a-z]+)_([0-9]+)/i","\${1}\${2}.html");
$RuleArray[] = array("/index.php\?main_page=(\w+)/i","\${1}.html");
//替换
$TempUrl = $ManUrl;
for($i=0;$i<count($RuleArray);$i++)
{
$TempUrl = preg_replace($RuleArray[$i][0],$RuleArray[$i][1],$TempUrl);
}
/*
当前页面 http://www.baidu.com/index.php?main_page=aaa_1
$TempUrl的值是:
aaa1.html
$thisFile 是实际物理文件名称。
例如:
当前访问文件是:
http://www.baidu.com/aaa1.html
$thisFile的值是:
aaa1.html
*/
//实际物理地址文件名称
$thisFile = substr(__FILE__,strrpos(__FILE__,"\\")+1);
if($TempUrl == $thisFile)
{
$pageStyle = "当前页面样式";
}
?>
热心网友 时间:2022-04-06 05:02
直接赋值,$pageStyle=$_GET['main_page'];追问能详细指点一下吗? 谢谢
热心网友 时间:2022-04-06 06:54
这么多 。。。。
热心网友 时间:2022-04-06 09:02
$str = "aaa_1";
if( ereg("^[a-z]+_[0-9]+$", $str)){
$arr = explode("_",$str);
$pageStyle = $arr[0].$arr[1].".html";
}elseif(ereg("^[a-z]+_[a-z]+$", $str) || ereg("^[0-9]+$", $str) || ereg("^[a-z]+$", $str) ){
$pageStyle = $str.".html";
}else{
$pageStyle = "其它样式,自己设定";
}