很多站长朋友们都不太清楚php伪静态url,今天小编就来给大家整理php伪静态url,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php伪静态如何获取地址栏url 2、 php伪静态、url重写 3、 php伪静态、URL重写怎么实现? 4、 phpcms 伪静态url怎么设置301 5、 thinkphp伪静态去掉栏目url 6、 PHP伪静态,URL重写。 php伪静态如何获取地址栏url程序伪静态后,搜索引擎又收录了之前的大量动态地址,如何处理呢?
你可能以为设置301就可以了,但似乎301更搜索引擎更新过来也是需要相当一段时间,而搜索到以前的动态地址,访问还是有点不好,毕竟还是希望访问静态地址,这里就需要在页面里做一下判断了。
首先,用了php内置函数,因程序伪静态了,发现取得的都是真实的url地址,和显示的url根本是两样。
网上找了很久,都没有找到办法。问题实再是很棘手。
无意中看到一个asp的例子,其中包含:http_x_rewrite_url,于是用php试了下,没想到却可以获取到地址栏的地址,至此问题解决。
例子,php伪静态如何获取地址栏url。
代码示例:
<?php
if (strstr($_server["http_x_rewrite_url"], ".php") { //判断是否包含.php的地址。
header("http/1.1 301 moved permanently");
header("location: "); //跳转到新的静态地址。
exit;
}
//只适用于windows的服务器,liunx则需要用 $_server['request_uri']来获取
if (strstr($_server['request_uri'],".php") { //判断是否包含.php的地址。
header("http/1.1 301 moved permanently");
header("location: "); //跳转到新的静态地址。
exit;
//只要输入以前的动态地址都会以301方式转到新的静态地址。
?>
php伪静态、url重写你的想法是完全可行的,我举个例子告诉你
你可以先看看这个文章,不懂的可以交流
apache一般都是在目录下创建.htaccess来实现伪静态,IIS不是这样的,这跟PHP本身没有关系,这是http服务器与客户端浏览器之间的约定
比如说
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$
index.php?action=$1id=$2
意思就是说当你访问类似 a_1.html里的时候 apache自动跳转到 index.php?action=$1id=$2的地方,其中$1就是左边重写规则的第一个变量 ([a-zA-Z]{1,}),$2就是([0-9]{1,})的第二个变量
php伪静态、URL重写怎么实现?首先我举例子是APACHE下的,使用.htaccess文件形式进行rewrite。
你程序目录放入.htaccess,内容如下:
RewriteEngine On
RewriteRule ^(\w+)\.html$ $1.php [NC,L]
访问的时候
被映射到
被映射到
更多方法在于你自己的尝试和挖掘,不要太依赖于别人的解决方式。
phpcms 伪静态url怎么设置301一个文章类网站换了全新的域名,原来的域名不方便记忆
因为关键词在百度首页前一、二名,所以就用了301重定项
把原有的域名 转到
之前没有做过301重定项,花一个小时在网上找教程,期间也少不了一番折腾
phpcms v9 301跳转设置方法一:
仅支持Apache服务器设置
在根目录下找到.htaccess文件,并将以下代码写入进去,保存上传即设置成功,如下图
1.jpg
代码如下,直接复制后,更改域名即可
RewriteEngine on
RewriteCond %{HTTP_HOST} !^linchangbing.com$ [NC]
RewriteRule ^(.*)$ [L,R=301]
注意将上面的域名替换为你自己的域名哦,另外以上代码是将www域名跳转到不带www的域名上,你如果的首选域名是带www的,那么在以上代码加上www即可
phpcms v9 301跳转设置方法二:(空间不支持伪静态)
phpcms v9 301跳转设置的另一种方法即是在根目录下的index.php文件中设置,如下图
1.png
代码如下,直接复制后,更改域名即可
$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
if(strtolower($the_host) != '')//把这里的域名换上你想要的
{ $URIRedirect=$_SERVER['REQUEST_URI']; //获取域名后的参数
if(strtolower($URIRedirect)=="/index.php")//判断是参数为/index.php就显示为/
{
$URIRedirect="/";
}
header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: ".$URIRedirect);//跳转到你希望的地址格式
exit();
}
"错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向过多。"问题
解决方法很简单,即直接在后把把网站的缓存重新生成一下就行了
phpcms v9 设置301后,内页转向了动态链接
原因是方法一中的代码放在了伪静态规则后面
解决:把代码放在伪静态规则前面就可以了
IIS下利用伪静态httpd.ini来实现301重定向
一、没有在后台开启伪静态,使用的是静态页面或动态页面
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^
RewriteRule (.*) [I,RP]
二、如果在网站后台开启了伪静态
编辑http.ini文件,在第4行 RepeatLimit 32 下新起一行(注意不要动下面的代码),把下面这段复制粘贴到新起的那行:
RewriteCond Host: ^
RewriteRule (.*) [I,R]
thinkphp伪静态去掉栏目url可以通过URL重写隐藏应用的入口文件index.php。
首先明确主要的任务有两个:一个是实现所谓的伪静态,也就是,使用所有ThinkPHP的ActionURL后添加上.html,以便于搜索引擎的收录,不过这并不意味着原来的ActionURL访问方式不使用。无论加不加html,都能够访问Index这个Action中的index方法。同时还有一个任务就是URL不再区分大小写。唯一需要注意的是,此配置文件的实质是php的数组array,里面的逗号什么的,请注意。之后,关于URL的重写。
PHP伪静态,URL重写。应该这样说才是,URL重写是实现PHP伪静态的方式之一,
具体如:
;y=2z=3
换成
这种伪静态方式访问的话,其他最简单的方法是在网站根目录下面建一个.htaccess 文件,其内容如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule /([\d]+)-([\d]+)-([\d]+)\.html /?x=$1y=$2z=$3
</IfModule>
最后再APACHE的虚拟域名配置文件里面找到项目所用的域名设置项<VirtualHost></VirtualHost>,
在其中再找到<Directory></Directory>,将AllowOverride None 改成 AllowOverride All,
若没有<Directory></Directory>,则增加如下内容
<Directory 目录路径>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.php
</Directory> 在<VirtualHost></VirtualHost>中间重启APACHE即可.
关于php伪静态url的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php伪静态url php伪静态渗透测试的详细内容...