ホームページ バックエンド開発 PHPチュートリアル php_PHP チュートリアルでの疑似静的の使用

php_PHP チュートリアルでの疑似静的の使用

Jul 13, 2016 pm 05:18 PM
php 使用

上次简单的说了下php中正则表达式的使用,这一次正则表达式可以派上用场了,学习伪静态需要能够很好的使用正则表达式,那么伪静态和真静态的区别是什么呢,我觉得应该是伪静态可以节约磁盘空间、利于SEO、访问速度上没有真静态那么快。伪静态也是对apache的rewrite机制的使用,下来就来分享下吧

1.使用伪静态首先要确认打开rewrite模块

首先打开httpd.conf,找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#即可之后重启apache,使用phpinfo确认重写模块成功启用

php_PHP チュートリアルでの疑似静的の使用

看到有红色这个就说明rewrite已经启用成功了喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPjIuyrnTw86xvrLMrNKqz8jU2kRpcmVjdG9yecDvvNPSu77kQWxsb3dPdmVycmlkZSBBbGw8L3A+CjxwPtXi0ru+5L/J0tS809TaYXBhY2hltcRodGRvY3O1xERpcmVjdG9yeb3atePA77vy1d/Q6cTi1ve7+rXERGlyZWN0b3J5vdq148DvPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all 之后的伪静态重写规则可以在Directory节点里写,也可以写在一个单独的.htaccess文件里,我强烈推荐使用后面这种方式

3.apache指定首页面、错误页

首先新建一个.htaccess文件,一般是先新建一个xx.txt文件另存为即可,这个文件我就放到项目的根目录,这个文件的内容如下

DirectoryIndex index.php
ErrorDocument 404 /static2/404.php

下面先来测试404,我们先访问一个不存在的php看看404生效没有,这个是我的错误页面

<?php
  echo "错误页面";
?>
ログイン後にコピー

下面是运行截图

php_PHP チュートリアルでの疑似静的の使用

首页的html如下

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>系统首页</title>
</head>
<body>
欢迎
</body>
</html>
ログイン後にコピー

我们直接把地址定位到根目录,回车后就能看到我们的这个首页了

php_PHP チュートリアルでの疑似静的の使用

还有这么一种情况需要考虑那就是访问的时候apache列出目录结构的问题,其实很简单就在.htaccess加一句Options None,需要注意的是Directory里就不能配置Options了,否则会出现403错误


4.伪静态的使用

http://localhost/static2/view-sports-id5.html类似这种url我们应该见过很多了,这种就是一种伪静态的url了,我们看上去访问的是一个静态的html但其实不是,类似这种url像sports和id后面的5可能就是程序中要使用的参数,我们访问的其实是一个动态页面。这样的话比较利于SEO,下面上一段配置给大家看看

<IfModule rewrite_module>
RewriteEngine on 
RewriteRule view-([a-zA-Z_]+)-id(php_PHP チュートリアルでの疑似静的の使用d+)php_PHP チュートリアルでの疑似静的の使用.html news.php?type=$1&id=$2
</IfModule>
ログイン後にコピー

RewriteEngine on的意思是启用apache的rewrite引擎

RewriteRule表示重写规则,第一个空格后面的是正则规范后面的news.php?type=$1&id=$2才是真正访问的php页面,$1表示前面正则规范的第一个子表达式的值,$2以此类推,这样我们就可以在news.php取得参数的值

php_PHP チュートリアルでの疑似静的の使用

同样的如果是控制器也可以在相应文件夹里写一个.htaccess,之后加上我们的重写规则


5.使用.htaccess来控制访问权限

日常的开发中我们可能在项目里面写了DAO,控制器,工具类这一大堆的php,而这些文件我们是不希望别人通过浏览器访问到,这种情况使用session来限制似乎也不奏效,这种情况使用重写规则就很简单了

RewriteRule [a-zA-Z0-9_]+php_PHP チュートリアルでの疑似静的の使用.classphp_PHP チュートリアルでの疑似静的の使用.php 403.html

这样写一句程序之外访问就跳转到另外一个页面,实现了访问的控制

php_PHP チュートリアルでの疑似静的の使用

6.RewriteCond的使用

有时我们需要判断在某种情况下才使用重写,这种情况就要使用RewriteCond了,例如我们可以判断请求的是不是一个文件(或不存在的文件),如果满足条件才执行重写规则

#如果请求的不是一个文件
RewriteCond %{REQUEST_FILENAME} !-f
#并且不是一个目录
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ccc.html index.php

这段配置的意思就是如果请求的ccc.html如果不存在则跳转到index,php

再来看最后一段配置

<ifModule rewrite_module>
RewriteEngine On
#你怎么知道,这个请求就是www.hsp.com发来的. referer
#如果你请求的是一个jpg图片, 就禁止
RewriteCond %{HTTP_REFERER} !www.hsp.com  
RewriteRule .*php_PHP チュートリアルでの疑似静的の使用.jpg -[F]
</ifModule>
ログイン後にコピー
[F]表示拒绝访问,其他的看看注释应该能看懂


最後に、要約すると、日常の開発におけるすべてのページが静的である必要があるわけではありません。たとえば、バックエンド システム、ファンド株、リアルタイムの電話料金請求書やトラフィック クエリ ページなど、リアルタイム要件が高いページや Web サイトです。学歴クエリ ページは静的化には適していません。プロモーション Web サイトなど、コンテンツが比較的安定している Web サイトでは、真の静的を使用したくないが、SEO に利益をもたらしたい場合は、疑似静的を使用することを検討できます。良い選択になりますように。



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/621636.html技術記事前回、php での正規表現の使用について簡単に説明しました。今回は、擬似静的を学ぶには、正規表現を使いこなせる必要があるので、擬似静的と...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles