PHP で擬似静的を実現するには 4 つの方法がありますが、思い当たりますか?
擬似静的実装ソリューションについて言えば、「簡単です。Apache の書き換えルールを設定するだけです 」
しかし、この状況は見つかりませんでした。最近、たくさんの新機能が毎日追加されていますが、まだ最初の 2 日間ですが、2 日以降は、運用と保守のクラスメートが協力してくれるようになりました。日が経つと、運営や保守のクラスメートに叱られます。どうして一度に全部やって、あなたはあまりにも鈍くて愚かなので、毎日私を困らせませんか?しかし、これからオンラインに接続しようとしているので、運用および保守のクラスメートに熱心に質問し、プログラマーの世界で最も恥知らずな言葉を言わなければなりません。「これが最後の変更です」。もう一度変えなければなりません、ため息、あなたの人格は完全に台無しです。 。 。
このようなお悩みをお持ちの方は、以下の記事を読んでいただき、今後二度と運用保守を依頼することがなくなり、安心してご利用いただけます。 。 。
それでは、PHP で擬似静的を実装する方法は何通りあるでしょうか?個人的な意見と統計では、
の 4 つの方法があります。 1. Apache の URL 書き換えルールを使用します。これはすべて Apache で設定します。学生がここで作成したものです。簡単な設定を列挙するだけです。
<span style="color: #000000;">RewriteEngine OnRewriteRule </span>^/test.html index.php?controller=index&action=test [L]
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_SERVER</span>['PATH_INFO']; <span style="color: #008000;">//</span><span style="color: #008000;">输出'/c/index/a/test/id/100'</span>
ErrorDocument 404 /404page.php
<span style="color: #008080;">header</span>("HTTP/1.1 200 OK"); <span style="color: #008000;">//</span><span style="color: #008000;">这里一定要有,不然状态就是404</span><span style="color: #800080;">$reqUrl</span> = <span style="color: #800080;">$_SERVER</span>['REQUEST_URI']; <span style="color: #008000;">//</span><span style="color: #008000;"> 请求地址</span><span style="color: #008000;">/*</span><span style="color: #008000;">** 从URL中解析参数</span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span> parseUrlParams(<span style="color: #800080;">$queryUrl</span><span style="color: #000000;">){ </span><span style="color: #800080;">$arr</span> = <span style="color: #008080;">explode</span>('?', <span style="color: #800080;">$queryUrl</span><span style="color: #000000;">); </span><span style="color: #008080;">parse_str</span>(<span style="color: #800080;">$arr</span>[1], <span style="color: #800080;">$param</span><span style="color: #000000;">); </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$param</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$param</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$value</span><span style="color: #000000;">) { </span><span style="color: #800080;">$_GET</span>[<span style="color: #800080;">$key</span>] = <span style="color: #800080;">$value</span><span style="color: #000000;">; } }}parseUrlParams(</span><span style="color: #800080;">$reqUrl</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> url解析参数//然后你就可以使用 $reqUrl 根据自己的规则匹配不同的实际请求地址</span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">preg_match</span>('#^/test.html#is', <span style="color: #800080;">$reqUrl</span>, <span style="color: #800080;">$matches</span><span style="color: #000000;">)){ </span><span style="color: #0000ff;">include</span>('index.php'<span style="color: #000000;">); </span><span style="color: #0000ff;">die</span><span style="color: #000000;">();}</span>
<span style="color: #000000;">RewriteEngine OnRewriteCond </span>%{REQUEST_FILENAME} !-<span style="color: #000000;">fRewriteCond </span>%{REQUEST_FILENAME} !-<span style="color: #000000;">dRewriteRule </span>. index.php
<span style="color: #008000;">/*</span><span style="color: #008000;">** 获取当前请求的URI地址[email protected] void[email protected] painsOnline[email protected] string URI</span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> getReqUri(){ </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">trim</span>(<span style="color: #800080;">$_SERVER</span>["REQUEST_URI"<span style="color: #000000;">]);}</span><span style="color: #800080;">$reqUri</span> =<span style="color: #000000;"> getReqUri();</span><span style="color: #0000ff;">if</span>(<span style="color: #008080;">preg_match</span>('/^\/test.html/isU', <span style="color: #800080;">$reqUri</span><span style="color: #000000;">)){</span><span style="color: #008000;">//</span><span style="color: #008000;">解析请求地址</span> <span style="color: #0000ff;">include</span> 'test.php'<span style="color: #000000;">; </span><span style="color: #0000ff;">exit</span><span style="color: #000000;">();}</span>