ホームページ  >  記事  >  バックエンド開発  >  PHP 擬似静的 APACHE の書き換え設定、rewriteapache_PHP チュートリアル

PHP 擬似静的 APACHE の書き換え設定、rewriteapache_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:21:39939ブラウズ

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 擬似静的 APACHE の書き換え設定、rewriteapache_PHP チュートリアル
 

apache 伪静态 配置

1. Apache が mod_rewrite をサポートしているかどうかを確認します。php が提供する phpinfo() 関数を通じて環境設定を確認します。Ctrl+F を使用して、apache2handler が開いたすべてのモジュールをリストします。すでにサポートされているため、追加のセットアップは必要ありません。
「mod_rewrite」がオンになっていない場合は、Apache インストールディレクトリ「/apache/conf/」の下にある httpd.conf ファイルを開き、Ctrl+F で「LoadModule rewrite_module」を見つけ、その前にある「#」記号を削除します。 。 できる。
見つからない場合は、「LoadModule」エリアに移動し、最後の行(専用行である必要があります)に「LoadModule rewrite_module modules/mod_rewrite.so」を追加して、Apacheサーバーを再起動してください。

2. Apache サーバーが .htaccess をサポートするようにします
httpd.conf ファイルを変更します

Options FollowSymLinks
AllowOverride None
に変更します
Options FollowSymLinks
AllowOverride All

注: 上記の場所の設定に加えて、次のことも行う必要があります。次のように設定します (インターネット上の多くの情報にはこれについて記載されていません)。そうしないと、DocumentRoot の後のパラメータをローカル Web サイトのディレクトリに変更します。たとえば、Web サイトのルート ディレクトリが D: /web/、それを DocumentRoot "D :/web/" に設定する必要があります。つまり、現在のディレクトリを変更します

この手順を設定した後、有効にするために Apache サーバーを再起動する必要があります

3.htaccess ファイルを作成します。
新しい htaccess.txt を作成します
メモ帳で開き、[ファイル] – [名前を付けて保存] をクリックし、ファイル名ウィンドウに「.htaccess」と入力して、[保存] をクリックします。このファイルは Web サイトのルート ディレクトリに保存する必要があります

4. Web サイトの疑似静的ルールを入力します (正規表現を理解する必要があります)

85ac288f8cdf15251785b7af9467eee6

RewriteEngine on

RewriteRule インデックス.html$index.php
RewriteRuleindex-([1-9]+[0-9]*).html$index.php?p=$1

2071f931c9870be1bebed0bdda8305e7

あなたや他の人の助けになれば幸いですインターネット上の友人たち、私はかつてそこにいて、上でたくさんのブレインストーミングをしました。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/854359.html技術記事 PHP 擬似静的 APACHE の設定を書き換える、rewriteapache 1. Apache 構成: 1. httpd.conf 構成をサポート 2. ディレクトリ .htaccess 構成をサポート (仮想空間の「分散構成」ファイル)...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。