一、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
在网站的根目录创建一个.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规则可以在网上找的
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 サイトの疑似静的ルールを入力します (正規表現を理解する必要があります)
RewriteEngine on
RewriteRule インデックス.html$index.php
RewriteRuleindex-([1-9]+[0-9]*).html$index.php?p=$1
あなたや他の人の助けになれば幸いですインターネット上の友人たち、私はかつてそこにいて、上でたくさんのブレインストーミングをしました。