Home  >  Article  >  Backend Development  >  PHP pseudo-static Rewrite settings for APACHE, rewriteapache_PHP tutorial

PHP pseudo-static Rewrite settings for APACHE, rewriteapache_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:21:39989browse

PHP伪静态Rewrite设置之APACHE篇,rewriteapache

 一、Apache配置:
 
1、支持httpd.conf 配置
2、支持目录 .htaccess配置(一种"分布式配置"文件针对虚拟空间,空间商不让修改Apache配置文件)
 
启用Rewrite(httpd.conf)
(有时候Options Indexes FollowSymLinks会出问题,只需要配置Options all即可)

LoadModule rewrite_module modules/mod_rewrite.so

 
启用.htaccess
AllowOverride None    修改为:AllowOverride All
 
二、mod_rewrite 规则:
例如:

RewriteEngine on              ->启动rewrite引擎
 
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1    ->指访问test加任意字段.html都能跳转到test.php    正则匹配的字段存放在虚拟内存匹配$1

 
三、mod_rewrite规则修正符
 
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联
 
如果规则匹配则正常处理,以下修正符无效
 
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS  只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符   \%3d$1  等价于 =$1
 
 
例如:

RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]

 
 
简单小范例:

RewriteEngine on
RewriteRule ^/in(.*).html$ /index.php

PHP+Apache配置伪静态的问题

在网站的根目录创建一个.htaccess这样的文件
然后你写上伪静态的UEL规则
RewriteEngine On
RewriteRule ^(.*)content-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)show-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)list-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=lists&catid=$2&page=$3

这样就配置完成了
PS:伪静态的URL规则可以在网上找的

PHP pseudo-static Rewrite settings for APACHE, rewriteapache_PHP tutorial
 

apache 伪静态 配置

1. Check whether Apache supports mod_rewrite. View the environment configuration through the phpinfo() function provided by php. Use Ctrl+F to find "Loaded Modules", which lists all modules that apache2handler has opened. If it includes "mod_rewrite" , it is already supported and no further settings are required.
If "mod_rewrite" is not turned on, open the httpd.conf file under your apache installation directory "/apache/conf/", use Ctrl+F to find "LoadModule rewrite_module", and change the "#" sign in front Just delete it.
If it is not found, go to the "LoadModule" area, add "LoadModule rewrite_module modules/mod_rewrite.so" in the last line (required to be an exclusive line), and then restart the apache server.

2. Let the apache server support .htaccess
Modify the httpd.conf file

Options FollowSymLinks
AllowOverride None
Change to
Options FollowSymLinks
AllowOverride All

Note: In addition to setting the above place, you also need to set the following (a lot of information on the Internet does not mention this), otherwise you will fail to configure. Change the parameters behind DocumentRoot to your local The directory of the website. For example, if the root directory of your website is D:/web/, it must be set to DocumentRoot "D:/web/", which means modifying the current directory

After this step is set, you must restart the apache server to take effect.

3. Create a .htaccess file
Create a new htaccess.txt
Open it with Notepad, click File – Save As, enter ".htaccess" in the file name window, and then click Save. This file must be saved in the root directory of the website

4. Fill in the pseudo-static rules of the website (need to know regular expressions)

85ac288f8cdf15251785b7af9467eee6

RewriteEngine on

RewriteRule index.html$ index.php
RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1

2071f931c9870be1bebed0bdda8305e7

I hope it can help you and other friends on the Internet. I also racked my brains on it.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/854359.htmlTechArticlePHP pseudo-static Rewrite settings APACHE, rewriteapache 1. Apache configuration: 1. Support httpd.conf configuration 2. Support directory .htaccess configuration (a "distributed configuration" file for virtual spaces...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn