Apache中使非伪静态url跳转到伪静态url的方法

如何使用.htaccess使非伪静态页面301跳转到伪静态页面然后再跳转?这是一个比较蛋疼的跳转。因为不小心就会搞成死循环导致页面无法打开。好在问题最终解决了。记录并分享出来,给需要的朋友借鉴借鉴。

规则如下:

RewriteRule ^article-([0-9]+).html$ /article.php?id=$1&r=1 [L]

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ [NC]

RewriteRule ^article.php$ /articlel-%1.html? [L,R=301]

注意:

创建.htaccess文件,Windows是不允许将文件命名为 . 开头的,我们可以利用UE/EditPlus等工具另存为 .htaccess来实现.
创建后,修改.htaccess文件内容为你的程序对应的伪静态规则,上传到程序文件目录即可实现.这里的程序文件目录请看FTP目录结构篇.下面列出几个常用程序的规则

(0)

相关推荐

  • Apache 虚拟目录和默认首页的设置

    虚拟目录 1.找到"conf/httpd.conf" 文件 2.在节点:<IfModule alias_module>里增加 Alias /aidd2008 "D:/php/web/aidd2008" 其中 aidd2008 是你想要访问的虚拟目录: D:/php/web/aidd2008 为物理路径,以[/]代替[\]" 我们就在</IfModule>后面接着加: 复制代码 代码如下: <Directory "D:

  • Apache中解决动态地址跳转死循环的方法

    问题背景:矿秘书网的历史遗留问题,刚开始由于各种问题,一些动态页面都是用了?id=参数的形式,对seo/seo.html" target="_blank">搜索引擎不友好,经常多方面考虑,还是改成伪静态.这里劝各位站长在做新站时,尽量使用伪静态,不仅对搜索引擎,对用户体验也友好. 问题描述:需要将 /news/show_news.php?id=1 形式的地址伪静态成 /news/1 形式,而且 /news/show_news.php?id=1 在浏览器打开要 301 跳

  • Apache mod_rewrite实现HTTP和HTTPS重定向跳转

    当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443).这时候你可以用以下的方式来做到:(Apache mod_rewrite) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://jb51.net/$1 [R=301,L] </IfModule&

  • Apache Rewrite实现URL的301跳转和域名跳转

    如果要想用到rewrite模块,必须先安装或加载rewrite模块.方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块. 基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意

  • Apache的Rewrite设置多域名301跳转到主域名的方法

    如果网站有多个域名,而又不希望分散权重,则可以通过开启Rewrite设置,将多个域名都301跳转到主域名之下,具体代码如下: RewriteEngine On RewriteCond %{HTTP_HOST} ^mituxiu.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.mituxiu.com [NC,OR] RewriteCond %{HTTP_HOST} ^metooshow.com [NC] RewriteRule ^(.*)$ http://www

  • windows中apache 301页面跳转实现方法

    实现301页面跳转之前需要对apache配置做下修改如 apache默认是没有开启mod_rewrite模块的, 1,将 复制代码 代码如下: #LoadModule rewrite_module modules/mod_rewrite.so 这一行前面的#号去掉,http.conf的站点目录配置,另一种是空间用户常用的 改为 复制代码 代码如下: LoadModule rewrite_module modules/mod_rewrite.so, 2,将AllowOverride None 改为

  • apache设置自动将http跳转到https的方法

    复制代码 代码如下: <Directory "/opt/fivetrees">## Possible values for the Options directive are "None", "All",# or any combination of:#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews## Note that "

  • Apache无法自动跳转却显示目录的解决方法

    Apache无法自动跳转却显示目录这是因为Apache服务器下conf/httpd.conf没有配置好,其默认是不跳转,直接显示目录 首先,我们需要禁止Apache直接显示目录. 方法在搜索Options Indexes FollowSymLinks,将其该为Options FollowSymLinks 其实,解决Apache无法自动跳转的问题,这是因为Apache本来只是一个http服务器,不会自动跳转到index.php页面.需要定位<IfModule dir_module>这一项,将Di

  • 让apache显示目录列表的配置方法

    1.apache中显示目录列表 在http.conf中加入如下代码(如有虚拟主机配置,加在虚拟主机配置段内),并把主目录内的index.pho,index.html,index.htm文件删除 复制代码 代码如下: Alias /download "/download"  <Directory "/download">    Options Indexes    Order allow,deny    IndexOptions Charset=UTF-8

  • 禁止apache显示目录索引的常见方法(apache禁止列目录)

    禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止Apache浏览目录,这是网上提问比较多的,其实都是一个意思.下面说下禁止禁止Apache显示目录索引的常见的3种方法.要实现禁止Apache显示目录索引,只需将 Option 中的 Indexes 去掉即可. 1)修改目录配置: 复制代码 代码如下: <Directory "D:/Apache/blog.phpha.com">Options Indexes FollowSymLinks # 修改为: Op

随机推荐