nginx伪静态
phpstudy集成环境下nginx模式wordpress伪静态设置
phpstudy集成环境下nginx模式wordpress伪静态设置我使用LNMP一键安装软件的wordpress的nginx伪静态规则(如下所示)复制到vhosts-ini之后保存,重启phpstudy服务location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent;结果phpstudy集成环境下nginx服务一直无法启动。
非常郁闷,百度了半天各种教程,结果都是说apache下的规则,也是无奈,不过功夫不负有心人,看到一个文件简单说了一些规则,尝试了一下,竟然成功了。
下面说下phpstudy集成环境下Nginx模式 wordpress伪静态规则:if (-f $request_filename/index.html){rewrite (.*) $1/index.html break;}if (-f $request_filename/index.php){rewrite (.*) $1/index.php;}if (!-f $request_filename){rewrite (.*) /index.php;}如果你和我一样使用的是phpstudy默认站点,没有自定义站点,那么直接将上面的代码复制到到vhosts-ini之后保存,重启phpstudy 服务即可。
如果你已经自定义了站点,那么将上的代码复制到vhosts-ini配置文件中的server { listen 80; 省略代码…… 在最后一个大括号之前粘贴上面的规则即可}加上之后,保存,重新Nignx就可以了。
再打开网站试一下,是不是就正常了呢?。
thinkphp 伪静态规则
thinkphp 伪静态规则摘要:1.什么是ThinkPHP伪静态规则2.ThinkPHP伪静态规则的作用3.如何配置ThinkPHP伪静态规则4.配置伪静态规则的注意事项5.总结正文:ThinkPHP是一款非常受欢迎的PHP开发框架,它提供了很多实用的功能,其中就包括伪静态规则。
伪静态规则可以帮助开发者更方便地管理和控制网站的URL结构,提高用户体验。
本文将详细介绍什么是ThinkPHP伪静态规则,以及如何配置它。
1.什么是ThinkPHP伪静态规则ThinkPHP伪静态规则是指在URL中使用伪静态规则,将动态的URL转换为静态的、易读的URL。
例如,将一个新闻列表页面的URL从`/index.php?c=news&m=list`转换为`/news/list`。
这样做可以提高用户体验,因为静态URL更容易被搜索引擎收录,也更容易被用户记住。
2.ThinkPHP伪静态规则的作用ThinkPHP伪静态规则主要有以下几个作用:- 提高用户体验:静态URL更容易被用户理解和记住,可以提高用户的回访率。
- 利于搜索引擎优化:静态URL更容易被搜索引擎收录,有利于提高网站的排名。
- 简化URL结构:使用伪静态规则可以让URL结构更加简洁明了,便于管理和维护。
3.如何配置ThinkPHP伪静态规则要配置ThinkPHP伪静态规则,需要进行以下几个步骤:- 安装ThinkPHP框架:首先需要安装ThinkPHP框架,可以在官方网站下载最新版本。
- 创建伪静态规则文件:在框架的`application`目录下,创建一个名为`route.php`的文件,用于配置伪静态规则。
- 配置伪静态规则:打开`route.php`文件,添加以下代码:```php<?php// 伪静态规则配置// 设置默认的伪静态后缀define("APP_URL_HTML", "html");// 设置伪静态规则function rules($rules) {// 这里可以自定义伪静态规则,例如:// $rules["index"] = "index"; // 将index.php伪静态为index// $rules["news/:id"] = "show"; // 将news/:id.php伪静态为show// ...return $rules;}```- 配置服务器:将服务器配置为支持伪静态规则。
nginx rewrite 参数和例子+常用Rewrite伪静态法则
正则表达式匹配,其中:1. * ~ 为区分大小写匹配2. * ~* 为不区分大小写匹配3. * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:1. * -f和!-f用来判断是否存在文件2. * -d和!-d用来判断是否存在目录3. * -e和!-e用来判断是否存在文件或目录4. * -x和!-x用来判断文件是否可执行flag标记有:1. * last 相当于Apache里的[L]标记,表示完成rewrite2. * break 终止匹配, 不再匹配后面的规则3. * redirect 返回302临时重定向地址栏会显示跳转后的地址4. * permanent 返回301永久重定向地址栏会显示跳转后的地址一些可用的全局变量有,可以用做条件判断(待补全)1. $args2. $content_length3. $content_type4. $document_root5. $document_uri6. $host7. $http_user_agent8. $http_cookie9. $limit_rate10. $request_body_file11. $request_method12. $remote_addr13. $remote_port14. $remote_user15. $request_filename16. $request_uri17. $query_string18. $scheme19. $server_protocol20. $server_addr21. $server_name22. $server_port23. $uri结合QeePHP的例子1. if (!-d $request_filename) {2. rewrite^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&controller=$1 &action=$2&$3 last;3. rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&controller=$1 last;4. break;多目录转成参数/sort/2 => /index.php?act=sort&name=abc&id=21. if ($host ~* (.*)/.domain/.com) {2. set $sub_name $1;3. rewrite ^/sort//(/d+)//?$ /index.php?act=sort&cid=$sub_name&id=$1 last;4. }目录对换/123456/xxxx -> /xxxx?id=1234561. rewrite ^/(/d+)/(.+)/ /$2?id=$1 last;例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:1. if ($http_user_agent ~ MSIE) {2. rewrite ^(.*)$ /nginx-ie/$1 break;3. }目录自动加“/”1. if (-d $request_filename){2. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;3. }禁止htaccess1. location ~//.ht {2. deny all;3. }禁止多个目录1. location ~ ^/(cron|templates)/ {2. deny all;3. break;4. }禁止以/data开头的文件可以禁止/data/下多级目录下.log.txt等请求;1. location ~ ^/data {2. deny all;3. }禁止单个目录不能禁止.log.txt能请求1. location /searchword/cron/ {2. deny all;3. }禁止单个文件1. location ~ /data/sql/data.sql {2. deny all;3. }给favicon.ico和robots.txt设置过期时间;这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志1. location ~(favicon.ico) {2. log_not_found off;3. expires 99d;4. break;5. }6.7. location ~(robots.txt) {8. log_not_found off;9. expires 7d;10. break;11. }设定某个文件的过期时间;这里为600秒,并不记录访问日志1. location ^~ /html/scripts/loadhead_1.js {2. access_log off;3. root /opt/lampp/htdocs/web;4. expires 600;5. break;6. }文件反盗链并设置过期时间这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求“rewrite ^/ /leech.gif;”显示一张防盗链图片“access_log off;”不记录访问日志,减轻压力“expires 3d”所有文件3天的浏览器缓存1. location ~* ^.+/.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {2. valid_referers none blocked * * localhost208.97.167.194;3. if ($invalid_referer) {4. rewrite ^/ /leech.gif;5. return 412;6. break;7. }8. access_log off;9. root /opt/lampp/htdocs/web;10. expires 3d;11. break;12. }只充许固定ip访问网站,并加上密码1. root /opt/htdocs/www;2. allow 208.97.167.194;3. allow 222.33.1.2;4. allow 231.152.49.4;5. deny all;6. auth_basic "C1G_ADMIN";7. auth_basic_user_file htpasswd;将多级目录下的文件转成一个文件,增强seo效果/job-123-456-789.html 指向/job/123/456/789.html1. rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)/.html$ /job/$1/$2/jobshow_$3.html last;将根目录下某个文件夹指向2级目录如/shanghaijob/ 指向/area/shanghai/如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/1. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;上面例子有个问题是访问/shanghai 时将不会匹配1. rewrite ^/([0-9a-z]+)job$ /area/$1/ last;2. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;这样/shanghai 也可以访问了,但页面中的相对链接无法使用,如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。
Nginx配置伪静态
Nginx配置伪静态⽬录⼀.简介try_file⽤于伪静态。
正常的静态⽂件是⼀个xx.html⽂件,他是真实存在于服务器某个⽂件夹中的。
动态⽹页是从数据库⾥查询,返回给浏览器的,实际上并没有这个⽂件,另外路径也很长。
伪静态优点:缩短URL路径,更美观URL路径短,容易被SEO收录,搜索排名靠前隐藏了真实的访问路径,更安全伪静态缺点:与原⽣的url⽐较在性能上,不如原⽣的url,简单的说伪静态就是在服务器上⼜进⾏了⼀层url解析,消耗服务器资源。
当然了这点消耗与优点相⽐,我们还是可以接受的。
下⾯是博客园中的⼀篇博客,地址是xx.html,让⼈看起来是⼀个html⽂件这个是微信的⼀个⽂章的地址,后⾯的参数是⽂章在数据库中的位置,还有⼀些其它信息⼆.配置server {listen 80;server_name ;index index.html index.php;root /data/html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;}}try_files $uri $uri/ /index.php?$query_string如果没找到3434.html,就匹配$uri/,nginx会去/data/html找有没有这个⽬录。
⽽具体的 URI 及参数是在 REQUEST_URI 中传递给 FastCGI 和 PHP 程序的,因此不受 URI 变化的影响。
三.整体流程当点击后,这篇⽂章所在的服务器,会try_files $uri $uri/ /index.php?$query_string;,⾸先匹配是否是xx.html,明显不是,但也不是⽂件夹,那就交给fastcgi,转⽽交给php-fpn去操作。
nginx 伪静态规则
Nginx伪静态规则
Nginx是一个广泛使用的Web服务器和反向代理服务器,可以通过使用伪静态规则来处理URL的重写,以便在处理时隐藏URL中的实际文件路径和查询参数。
下面是一些常见的Nginx伪静态规则示例:
1.将所有请求重写到一个统一的入口文件(如index.php):
location / {
try_files $uri $uri/ /index.php?$query_string;
}
2.将带有扩展名的文件请求重写为对应的无扩展名文件:
location / {
if (!-e $request_filename) {
rewrite ^/(.*)\.(html|php|css|js)$ /$1 last;
}
}
3.隐藏URL中的文件路径:
location / {
try_files $uri $uri/ /index.php?$query_string;
rewrite ^/category/(.*)$ /index.php?category=$1 last;
rewrite ^/product/(.*)$ /index.php?product=$1 last;
}
4.禁止直接访问特定文件扩展名的文件:
location ~ \.(sql|conf)$ {
deny all;
}
请记住,在使用伪静态规则之前,你需要确保Nginx已正确配置,并在配置文件中启用了相应的模块(如rewrite模块)。
此外,根据你的具体需求,你可能需要自定义和调整这些规则以满足你的应用程序的要求。
伪静态 rewrite规则
伪静态rewrite规则摘要:1.伪静态概念介绍2.伪静态rewrite 规则的作用3.伪静态rewrite 规则的编写方法4.伪静态rewrite 规则的实际应用5.伪静态rewrite 规则的优点与局限性正文:1.伪静态概念介绍伪静态(Pseudo Static)是一种在动态网页上实现静态页面效果的技术。
它允许在动态网页上使用静态页面的URL,从而提高网站的性能和用户体验。
伪静态技术通常用于PHP、Python 等编程语言,通过服务器端的代码实现动态内容与静态页面的结合。
2.伪静态rewrite 规则的作用伪静态rewrite 规则是实现伪静态技术的核心部分,它可以将动态网页的URL 重写为静态页面的格式。
这样,用户在访问网站时,浏览器会直接请求静态页面,而不是经过服务器的动态渲染。
这种技术可以有效地提高网站的访问速度,减轻服务器负担,同时方便搜索引擎的收录。
3.伪静态rewrite 规则的编写方法伪静态rewrite 规则通常通过服务器端的代码实现,以PHP 为例,可以使用PHP 的内置函数「rewrite」来实现。
以下是一个简单的伪静态rewrite规则示例:```php<?php// 判断是否为伪静态请求if (isset($_SERVER["HTTP_X_Rewrite_Url"])) {// 提取URL 中的参数$url_params = parse_str($_SERVER["HTTP_X_Rewrite_Url"], "/");// 根据参数构建动态SQL$sql = "SELECT * FROM content WHERE id=".$url_params["id"];// 执行SQL 获取动态内容$content = mysqli_query($sql);// 将动态内容输出到页面while ($row = mysqli_fetch_array($content)) {echo "【".$row["title"]."】".$row["content"]."<br>";}} else {// 输出静态页面内容echo "欢迎来到伪静态示例网站!";}>```4.伪静态rewrite 规则的实际应用在实际应用中,伪静态rewrite 规则可以根据网站的需求和结构进行灵活调整。
伪静态 rewrite规则 -回复
伪静态rewrite规则-回复什么是伪静态?伪静态(Pseudo-Static)是一种技术,用于在URL中隐藏动态生成的内容,使其看起来像是静态页面。
这种技术可以提高网站的性能和SEO(搜索引擎优化),同时保留动态生成内容的优点。
伪静态的原理在传统的动态网站中,网页内容是根据用户请求的参数动态生成的。
每次访问都会执行一次数据库查询或其他动态操作,这样会增加服务器的负载,并且页面响应时间较长。
而伪静态则将动态生成的页面内容缓存起来,当下次相同的请求到达时,直接返回缓存的静态页面,避免了重复的动态生成过程。
伪静态的优势1. 提高网站性能:伪静态技术可以显著减少数据库查询和动态操作的次数,从而加快网页加载速度,提高用户体验。
2. 有利于SEO:搜索引擎更喜欢静态页面,因为它们更易于索引和排名。
使用伪静态技术可以使网站的URL更有意义,包含关键词,有助于提高搜索引擎的排名。
3. 方便改版和维护:将动态生成的内容存储为静态页面,可以方便地进行页面的改版和维护,而不用担心影响到网站的正常运行和数据的一致性。
伪静态的实现方法实现伪静态有多种方法,其中最常见的是使用Apache服务器的rewrite 规则。
下面是一种基本的伪静态rewrite规则的示例:RewriteEngine On # 打开rewrite引擎RewriteCond {REQUEST_FILENAME} !-f # 如果请求的文件不存在RewriteCond {REQUEST_FILENAME} !-d # 如果请求的目录不存在RewriteRule ^(.*) index.php?url=1 [QSA,L] # 将所有的请求重定向到index.php,并将请求的URL作为参数传递上述规则的含义是,如果请求的文件或目录在服务器上不存在,就将所有的请求重定向到index.php页面,并将请求的URL作为参数传递。
这样,index.php可以根据传递的参数动态生成相应的页面内容,并返回给用户。
nginx伪静态规则
nginx伪静态规则Nginx伪静态规则介绍:1. 什么是Nginx伪静态规则Nginx伪静态规则是网站中静态页面和动态页面之间的一个折衷方式,它可以使动态页面具有静态页面的正常浏览和SEO等一系列优点,同时也保持动态页面的特性,可以更好的支持动态页面的多实例管理等需求。
2. Nginx伪静态规则的优势(1)更快的访问速度:静态页的访问速度比动态页快得多,使用伪静态规则可以使得网站访问速度更快;(2)SEO优化:静态页支持搜索引擎更好的抓取,利于网站排名;(3)节省系统资源:如果正确使用伪静态规则,服务器可以减少大量的系统资源,提升服务器性能;(4)支持多实例:伪静态规则也可以支持多实例,使网站管理及功能更加完善。
3. Nginx伪静态规则的常见应用(1)在HTML页面中应用:在设计HTML页面的时候,可以使用Nginx伪静态规则来取代常规的URL地址,使得网站访问更快更容易。
(2)在WordPress中应用:在WordPress中,可以使用Nginx伪静态规则来取代原来的系统路径,使系统架构更加优美,也方便了SEO操作。
(3)在PHP程序中应用:对于使用PHP开发的网站,可以使用Nginx 伪静态规则来精简和优化网站URL地址,使用更加友好。
(4)在Apache+Scp页面中应用:Apache和Scp是一种动态的页面技术,使用Nginx伪静态规则可以让页面更快被搜索引擎收录,形成优质的网站系统,同时提高网站访问效率。
4. Nginx伪静态规则的使用要求(1)熟练掌握Nginx伪静态规则的基本原理;(2)熟悉Nginx伪静态规则使用的语法;(3)了解网站架构,熟悉网站工作流程;(4)了解搜索引擎SEO基本原理,熟悉搜索引擎优化技术;(5)充分理解动态页面特性,了解多实例管理的概念。
伪静态规则代码
伪静态规则代码一、什么是伪静态规则代码在网站开发中,伪静态是指通过对URL进行重写,使其看起来像是静态页面的一种技术。
伪静态规则代码是指用来实现伪静态的一段代码或配置。
传统动态网页的URL通常包含参数,例如:。
而使用伪静态后,URL会变得更加友好和美观,例如:。
通过使用伪静态规则代码,可以提升网站的用户体验和搜索引擎优化效果。
二、为什么使用伪静态规则代码1. 改善用户体验动态网址通常包含大量参数和特殊字符,不易记忆和分享。
而采用伪静态后,URL会变得简洁、有意义且易于理解。
这有助于提高用户对网站内容的识别度和理解度。
2. 提升搜索引擎优化效果搜索引擎更喜欢处理静态页面而非动态页面。
通过使用伪静态规则代码,可以将动态生成的页面转换为看起来像是静态页面的形式呈现给搜索引擎爬虫。
这有助于提高网站在搜索引擎结果页面中的排名。
3. 方便URL的管理和维护动态网址通常包含大量参数,不方便管理和维护。
而使用伪静态后,URL会变得简洁明了,易于管理和维护。
三、如何编写伪静态规则代码1. 选择合适的伪静态规则代码方式在编写伪静态规则代码之前,需要先选择合适的方式来实现伪静态。
常见的方式包括:•Apache服务器下使用.htaccess文件•Nginx服务器下使用rewrite模块•IIS服务器下使用URL Rewrite模块根据所使用的服务器类型和具体需求,选择相应的方式进行配置。
2. 编写伪静态规则代码示例(以Apache服务器为例)a. 创建.htaccess文件首先,在网站根目录下创建一个名为.htaccess的文件。
b. 启用.htaccess确保Apache服务器已开启.htaccess功能。
在主配置文件或虚拟主机配置中添加以下内容:<Directory "/path/to/your/website">AllowOverride All</Directory>c. 编写伪静态规则代码在.htaccess文件中添加以下示例代码:RewriteEngine OnRewriteBase /# 将 /article.php?id=1 重写为 /article/1.htmlRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^article/([0-9]+)\.html$ article.php?id=$1 [L]在上述示例代码中,RewriteEngine On表示启用URL重写功能,RewriteBase /表示基础重写路径。
利用Nginx下伪静态规则解决“No input file specified”问题
利用Nginx下伪静态规则解决“No input file specified”问题
昨天把博客转到了新的空间,解析了域名,今天发现能ping通了,首页能打开,但是点击详细页面的时候却发现网页一片空白,只有一行提示字:No input file specified.
网上搜索了一下,有各种说法,都未能解决。
后来找到比较接近成功的解决方法,就是添加如下伪静态规则:
RewriteEngine?On
RewriteBase?/
RewriteCond?%{REQUEST_FILENAME}?!-f
RewriteCond?%{REQUEST_FILENAME}?!-d
RewriteRule?^(.*)$?/index.php?/$1?[L]
而以上的伪静态代码又不适用于我的博客空间,因为我的是Nginx服务器,因此需要符合Nginx下的伪静态规则。
结合Nginx下伪静态的特点,经过修改,最终得出的解决办法是为服务器添加以下伪静态规则:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?/$1 last;}
伪静态规则正确添加后,问题随之解决。
文章来源:周森标博客
文章来源于:/article-24734-1.html。
phpyun人才招聘系统伪静态配置教程
phpyun人才招聘系统伪静态配置教程官方网址:伪静态是什么?伪静态就是:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面.伪静态有什么用?我们做伪静态的目的就只有几种:1.最主要的就是迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容!2.方便用户访问网站:一个好网页如果是动态的用户在相互传播时感觉对方信任度不会高但一看一个静态页相对用户对网页的信任度就高点而且伪静态的后缀方式基本雷同,一看就知道是伪静态还是真的静态网页!3.伪静态对SEO有利嘛?SEO中的伪静态如何定义?!在影响网站在搜索引擎的排名中,有很重要的一条是网页静态化,很多朋友在研究SEO的时候,因为有些技术原因,伪静态成了最大的门槛.我们知道,在SEO优化中,new_1234.html要比new.php?id=1234更容易收录,一般对于有独立服务器的朋友来说,你就可以使用ISAPI_Rewrite的方式写伪静态规则,而对于只有虚拟空间的朋友,可能你只能使用一些php生成HTML的系统来帮助你了.今天重点说一下利用ISAPI_Rewrite构建伪静态.1、IIS6.0第一:首先我们需要下载一个ISAPI_Rewrite,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站进行伪静态配置.对于个人站长来说,精简版就足够了.下载:/download/isapi_rwl_0055.msi第二:下载完成后,可以找到安装包里的.msi的文件,安装即可.随便装在哪都可以,默认是装在C:\Program Files\Helicon下,要注意的是这个目录everyone要有读取权限。
我就因为当时服务器权限配的比较严格,默认安装Helicon这目录EVERYONE是没有任何权限的,结果老是出现:Service Unavailable。
第三:打开Internet信息服务,右键,web站点属性,点击ISAPI筛选器选项卡.添加筛选器,这里的名称可以自己随意填写,路径自己指定ISAPI_Rewrite.dll,然后确定.第四:将phpyun安装包中的伪静态文件/httpd(IIS6.0).ini改为httpd.ini覆盖ISAPI_Rewrite 安装目录下面。
nginx伪静态正则 字母和数字组合
nginx伪静态正则字母和数字组合Nginx伪静态正则表达式,为网站优化提供了便利。
通过设置合适的规则,可以使网页URL更加友好,提升网站的用户体验。
下面将介绍一些常见的伪静态正则表达式规则,帮助您更好地了解和应用。
一、去除URL中的参数在网址中,有时会包含一些参数,如?name=xxx&age=xxx等。
这些参数对于搜索引擎来说,是无意义的,会影响到网页的排名。
因此,我们可以使用正则表达式将这些参数去除,让URL更加干净简洁。
例如,可以使用以下规则:```location ~ ^/(.*) {if ($args ~ (.+)) {rewrite ^(.*)$ /$1? permanent;}}```这样就可以将URL中的参数去除,让网址更加美观。
二、隐藏URL中的文件扩展名有些网站的URL中会包含文件的扩展名,如.html、.php等。
为了提高网站的安全性和美观性,我们可以使用正则表达式来隐藏这些扩展名。
例如,可以使用以下规则:```location ~ ^/(.*)\.(html|php)$ {rewrite ^/(.*)\.(html|php)$ /$1 last;}```这样,当用户访问带有扩展名的URL时,实际上访问的是没有扩展名的URL,提高了网站的安全性和用户体验。
三、重写URL中的目录结构有时候,我们需要调整网站的目录结构,但是又不希望影响到已有的链接。
这时,可以使用正则表达式来重写URL中的目录结构。
例如,可以使用以下规则:```location ~ ^/old/(.*)$ {rewrite ^/old/(.*)$ /new/$1 last;}```这样,当用户访问/old/目录下的URL时,实际上访问的是/new/目录下的URL,实现了目录结构的调整。
总结一下,通过使用Nginx伪静态正则表达式,我们可以实现URL 参数的去除、文件扩展名的隐藏以及目录结构的重写。
这些规则能够帮助我们提升网站的用户体验和安全性,提高网站的排名。
nginx 伪静态 重定向 包括域名、目录、文件等方法
在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。
如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失。
不仅如此,之前该页面的一切积累(比如PR值)就都白费了。
301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值1、将多个域名指向同一web目录:server_name ;rewrite ^/$ / redirect;2、将不带www的域名301转向到带www的域名:server_name ;if ( $host != "" ) {rewrite ^/(.*)$ /$1 permanent;}nginx重定向规则详细介绍rewrite命令nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下:rewrite 正则表达式替换目标flag标记flag标记可以用以下几种格式:last –基本上都用这个Flag。
break –中止Rewirte,不在继续匹配redirect –返回临时重定向的HTTP状态302permanent –返回永久重定向的HTTP状态301例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串:location /download/ {rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;}nginx重定向的IF条件判断在server和location两种情况下可以使用nginx的IF条件判断,条件可以为以下几种:正则表达式如:匹配判断~ 为区分大小写匹配; !~为区分大小写不匹配~* 为不区分大小写匹配;!~为不区分大小写不匹配例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:if ($http_user_agent ~ MSIE) {rewrite ^(.*)$ /nginx-ie/$1 break;}文件和目录判断-f和!-f判断是否存在文件-d和!-d判断是否存在目录-e和!-e判断是否存在文件或目录-x和!-x判断文件是否可执行例如下面设定nginx在文件和目录不存在的时候重定向:if (!-e $request_filename) {proxy_pass http://127.0.0.1/;}return返回http代码,例如设置nginx防盗链:location ~* \.(gif|jpg|png|swf|flv)$ {valid_referers none blocked / /;if ($invalid_referer) {return 404;}}set设置nginx变量301重定向方法进行了301重定向,把和合并,并把之前的域名也一并合并. 有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host):server {server_name ;if ($host != ') {rewrite ^/(.*)$ /$1 permanent;}...}第二种方法:server {server_name ;rewrite ^/(.*) /$1 permanent;}测试了第一种方法ok,这两种方法中,permanent是关键,详细说明见nginx重定向规则说明。
thinkphp htaccess伪静态规则
thinkphp htaccess伪静态规则在ThinkPHP框架中,可以使用.htaccess文件来实现伪静态规则。
下面是一个常见的ThinkPHP伪静态规则示例:```apache<IfModule mod_>RewriteEngine onRewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . / [L]</IfModule>```这个规则的作用是:1. `RewriteEngine on`:启用Apache的URL重写引擎。
2. `RewriteRule ^index\.php$ - [L]`:将所有以``开头的URL重写为``,并且不进行其他重写。
3. `RewriteCond %{REQUEST_FILENAME} !-f`:如果请求的URL对应的文件不存在。
4. `RewriteCond %{REQUEST_FILENAME} !-d`:如果请求的URL对应的目录不存在。
5. `RewriteRule . / [L]`:将所有符合条件的请求重写到``,并且不进行其他重写。
这样设置后,你可以将URL中的动态部分映射到ThinkPHP的控制器和操作方法上,从而实现伪静态的效果。
例如,将URL 映射到控制器`UserController` 的 `read` 操作方法上。
在ThinkPHP中,你需要创建一个名为 `UserController` 的控制器类,并在其中定义 `read` 方法来处理这个请求。
Yii2配置Nginx伪静态的方法
Yii2配置Nginx伪静态的⽅法本⽂实例讲述了Yii2配置Nginx伪静态的⽅法。
分享给⼤家供⼤家参考,具体如下:主要检查以下代码:location / {# Redirect everything that isn't a real file to index.phptry_files $uri $uri/ /index.php?$args;}完整代码:server {charset utf-8;client_max_body_size 128M;listen 80; ## listen for ipv4#listen [::]:80 default_server ipv6only=on; ## listen for ipv6server_name mysite.local;root /path/to/basic/web;index index.php;access_log /path/to/basic/log/access.log;error_log /path/to/basic/log/error.log;location / {# Redirect everything that isn't a real file to index.phptry_files $uri $uri/ /index.php?$args;}# uncomment to avoid processing of calls to non-existing static files by Yii#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {# try_files $uri =404;#}#error_page 404 /404.html;location ~ \.php$ {include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;fastcgi_pass 127.0.0.1:9000;#fastcgi_pass unix:/var/run/php5-fpm.sock;try_files $uri =404;}location ~ /\.(ht|svn|git) {deny all;}}更多关于Yii相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家基于Yii框架的PHP程序设计有所帮助。
nginx伪静态转apache规则
nginx伪静态转apache规则本文旨在讨论Nginx伪静态转Apache则的技术过程和方法。
首先,本文将重点介绍 Apahce Nginx不同特征和各自服务器端编程语言。
其次,本文将着重介绍将 Nginx 伪静态转 Apache则的步骤,包括针对不同伪静态规则的处理措施、Apache径重写的配置以及如何实现 Nginx 伪静态转 Apache则的技巧。
最后,本文将讨论如何使用这些技术来提高网站的性能。
1.言网站的技术是大量的,而 Apache Nginx最受欢迎的两个 Web 务器之一。
它们之间的性能差异可以帮助我们在编写网站代码时作出更好的选择,并在处理大量访问时有更好的效果。
在现有的系统中,由于 Apache Nginx有不同的特性,我们可能需要做一些技术上的调整,以实现 Nginx 伪静态转 Apache则的方法。
2. Apache Nginx特征Apache Nginx是开源服务器,它们在服务器端编程语言上有所不同。
Apache 使用的是 PHP,这使得开发者对 Apache使用有更好的控制,但可能会消耗更多的系统资源。
而 Nginx 使用的是nginx.conf件,这样做的好处是更容易管理和使用,但不能够在深度上控制,使得运行效率更低。
同时,Apache Nginx伪静态规则也有所不同,Apache伪静态规则是.htaccess,而 Nginx 使用的是 nginx.conf。
Nginx 伪静态规则可以帮助网站优化服务器性能,但也可能需要更多的配置,才能够达到同样的质量标准,这也使得要将 Nginx伪静态转换为Apache伪静态规则时变得复杂起来。
3. Nginx 伪静态转 Apache则在将 Nginx 伪静态转 Apache则的过程中,有几个步骤需要注意。
首先,根据 Nginx 伪静态规则分析 nginx.conf件,找出当中的 URL径重写规则,并且根据 URL径重写规则将其转化为Apache.htaccess。
zblog伪静态规则
zblog伪静态规则什么是zblog伪静态规则?在介绍zblog伪静态规则之前,我们先来了解一下什么是伪静态。
传统的动态网页是通过服务器动态生成页面内容,每次访问都需要经过服务器的处理和数据库查询等操作,这对于服务器的负载来说是一个较大的压力。
而伪静态技术可以将动态网页转化为静态网页,将页面内容保存为HTML文件并存储在服务器上,当访问者请求该页面时直接返回HTML文件,无需再进行动态生成。
zblog是一款开源的博客程序,它提供了伪静态规则的功能。
通过设置适当的规则,可以将zblog生成的动态页面转化为伪静态页面,并提高网站的访问速度和性能。
zblog伪静态规则的配置要使用zblog伪静态规则,首先需要在服务器上安装URL重写模块(如Apache的mod_rewrite或Nginx的rewrite模块),以便能够对URL进行重写操作。
在zblog中配置伪静态规则主要包括两个步骤:修改.htaccess文件和设置URL路由规则。
修改.htaccess文件.zblog目录下有一个名为.htaccess的文件,这个文件用来配置URL重写规则。
打开该文件,可以看到如下内容:<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>上述代码中的RewriteEngine On表示开启URL重写功能,RewriteBase /表示URL重写的基准路径为根目录。
我们需要在这个文件中添加一些额外的规则来实现伪静态。
例如,我们可以添加以下规则:<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# 添加伪静态规则RewriteRule ^post/(\d+)$ post.php?id=$1 [L]</IfModule>上述代码中的^post/(\d+)$表示匹配以post/开头,后面跟着一个或多个数字的URL。
nginx rewrite post丢失参数
nginx rewrite post丢失参数(原创版)目录1.Nginx rewrite 模块的作用2.Post 丢失参数的现象和原因3.解决 Post 丢失参数的方法4.总结正文一、Nginx rewrite 模块的作用ginx 是一个广泛使用的 Web 服务器和反向代理服务器,其强大的功能和灵活的配置选项使其在 Web 应用中扮演着重要角色。
其中,rewrite 模块是 Nginx 的一个重要功能,它可以实现 URL 的重写,使得我们可以更方便地管理和优化网站结构。
通过使用 rewrite 模块,我们可以实现诸如伪静态、目录结构调整等功能,从而提高网站的性能和用户体验。
二、Post 丢失参数的现象和原因在 Nginx 中使用 rewrite 模块时,可能会遇到 Post 丢失参数的现象。
具体来说,就是当用户通过表单提交数据时,某些参数在传递过程中会丢失。
这种现象的出现主要是由于以下几个原因:1.Nginx 的 rewrite 模块在处理 URL 时,会根据配置文件中的规则进行一系列的替换和重写操作。
在这个过程中,如果配置不当,可能会导致部分参数丢失。
2.Nginx 的 URL 重写操作是基于 HTTP 协议的,因此在传递表单数据时,可能会遇到一些兼容性问题。
例如,某些浏览器在处理重写后的 URL 时,可能会忽略部分参数。
3.在 Nginx 的配置文件中,如果使用了一些特殊的符号或语法,可能会导致参数丢失。
例如,使用了波浪线(~)或问号(?)等特殊字符,可能会使得参数无法正确传递。
三、解决 Post 丢失参数的方法为了解决 Nginx rewrite 模块中 Post 丢失参数的问题,我们可以采取以下几种方法:1.检查 Nginx 的配置文件,确保 rewrite 模块的规则设置正确。
尽量避免使用波浪线(~)或问号(?)等特殊字符,以免引起兼容性问题。
2.在传递表单数据时,使用 JavaScript 对表单数据进行编码和解码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设为首页
收藏本站
快捷导航
首 页论 坛下 载手 册演 示客 服主机推荐我来出份力分站演示
FineCMS 最新研发动态
通过这个窗口,关注跟踪我们的研发进展我来给官方反馈BUG
FineCMS 正式版隆重发布
快速建立网站 帮助网站实现一站式服务 下载 — 安装 — 手册下载 — 帮助中心
模板函数变量 自定义URL 地址详细教程
模板标签介绍 FineCMS 万能标签list 功能介绍表单使用介绍 模型创建指南 推荐虚拟主机
热搜:教程
论 坛
使用交流
使用交流
搞了一下午的nginx 僞靜態,現在還沒搞得 ...
返回列表
电梯直达
楼主hlbejy | |设置 |消息 |提醒 |退出积分: 52
|用户组: 注册会员
请输入搜索内容
帖子搜索
查看: 92|回复: 4
搞了一下午的nginx僞靜態,現在還沒搞得 [复制链接]
古易子
发表于 2012-8-4 19:36:52 |只看该作者 |倒序浏览
這東東,看來要慢慢搞才行。
发消息
分享到:
QQ 空间
腾讯微博
腾讯朋友
收藏1
回复
举报
发消息
沙发
回复
举报
6主题0好友
88积分
注册会员
民间偏方 忠忠美女
“人人为我,我为人人”,人人为FineCMS 出一份力!dayrui 167主题2好友3367积分
管理员
发表于 2012-8-4 20:12:16 |只看该作者
参考zend 框架配置方法
技术上问题或者使用方面不懂的地方(HTML 知识就免了),单击此处QQ 联系我~~
“人人为我,我为人人”,人人为FineCMS 出一份力!
发消息
板凳
回复
举报
发消息
地板
古易子
6主题0好友
88积分
注册会员
发表于 2012-8-5 09:41:45 |只看该作者
看不懂代碼,不懂如何搞啊,老大有空說說如何僞靜態吧,在nginx 上。
民间偏方 忠忠美女
“人人为我,我为人人”,人人为FineCMS 出一份力!dayrui 167
主题2好友
3367积分
管理员
发表于 2012-8-5 09:50:54 |只看该作者
01. i f (!-e $r e q u e s t _f i l e n a m e ) {02. r e w r i t e ^/(.*) /i n d e x .p h p ?$1&;03. }
复制代码
你百度搜索一下“zendframework nginx ”,你试试,我没试过
技术上问题或者使用方面不懂的地方(HTML 知识就免了),单击此处QQ 联系我~~
“人人为我,我为人人”,人人为FineCMS 出一份力!
回复
举报
发消息
5#
古易子6
主题0好友
88积分
注册会员
发表于 2012-8-5 10:18:17 |只看该作者
偶試以下可以
01. r e w r i t e "^/s h o w -([0-9]+)\.h t m l $" /i n d e x .p h p ?c =c o n t e n t &a =s h o w &i d =$1 l a s t ;
02. r e w r i t e "^/s h o w -([0-9]+)-([0-9]+)\.h t m l $" /i n d e x .p h p ?c =c o n t e n t &a =s h o w &i d =$1&p a g e =$2 l a s t ;03. r e w r i t e "^/l i s t -([0-9]+)\.h t m l $" /i n d e x .p h p ?c =c o n t e n t &a =l i s t &c a t i d =$1 l a s t ;
04. r e w r i t e "^/l i s t -([0-9]+)-([0-9]+)\.h t m l $" /i n d e x .p h p ?c =c o n t e n t &a =l i s t &c a t d i r =$1&p a g e =$2 l a s t ;
复制代码
修改文件router.ini.php
01. <?p h p
02. i f (!d e f i n e d ('I N _F I N E C M S ')) e x i t ();03. 04. /**
05. * 自定义路由配置信息06. */
07. r e t u r n a r r a y (08.
09. //栏目路由
10. '^l i s t -([0-9]+).h t m l => 'c =c o n t e n t &a =l i s t &c a t d i r =${1}', //目录访问
11. '^l i s t -([0-9]+)\-([0-9]+).h t m l => 'c =c o n t e n t &a =l i s t &c a t d i r =${1}&p a g e =${2}',12. '^([0-9]+)[/]? => 'c =c o n t e n t &a =l i s t &c a t i d =${1}', //I D 访问
13. '^([0-9]+)\-([0-9]+).h t m l => 'c =c o n t e n t &a =l i s t &c a t i d =${1}&p a g e =${2}',14.
15. //内容路由
16. '^s h o w -([0-9]+).h t m l => 'c =c o n t e n t &a =s h o w &i d =${1}',
17. '^s h o w -([0-9]+)\-([0-9]+).h t m l => 'c =c o n t e n t &a =s h o w &i d =${1}&p a g e =${2}',
回复
举报
返回列表
高级模式
举报|手机版|FineCMS 站长统计
GMT+8, 2013-3-21 10:48 , Processed in 0.044189 second(s), 23 queries .
18. '^([a -z A -Z ]+)\-[0-9]{6}\-([0-9]+).h t m l => 'c =c o n t e n t &a =s h o w &i d =${2}',
19. '^([a -z A -Z ]+)\-[0-9]{6}\-([0-9]+)\-([0-9]+).h t m l => 'c =c o n t e n t &a =s h o w &i d =${2}&p a g e =${3}',20. 21. );
复制代码
民间偏方 忠忠美女
“人人为我,我为人人”,人人为FineCMS 出一份力!发表回复 回帖后跳转到最后一页
Powered by Discuz! X2.5
© 2001-2012 Comsenz Inc.。