この記事では、PHP に関する関連知識を提供します。主にルーティングと擬似静的アプリケーションに関する関連内容を紹介します。ルーティングとは回線の配布を指し、擬似静的とは動的 URL アドレスを静的に見せることです。見てみましょう。皆様のお役に立てれば幸いです。
#Route
文字通り説明すると、道路は線、道路であり、理由、意味、はルールを表しており、どのようなルールまたは意味に従ってどこに割り当てられるかを意味します。つまり、ルーティングとは回線の分配のことを指しますが、バックエンド Web では一般に、どのような種類の URL アクセスがどのモジュールとどのコントローラを介してマッピングされるかなど、URL にアクセスするためのマッピング ルールを指します。ルーティング ルール: 何らかのメソッド、クラス、クロージャ、またはその他のもの、つまり、配布の役割を果たします。
Pseudo-static
Pseudo-static は文字通り、偽の、静的なことを意味します。
(補足: 擬似静的とは、動的 URL アドレスを静的アドレスのように見せることです。擬似静的は技術ではなく、最終的な目標です。擬似を実現する方法はたくさんあります。 -static. これは、ホストの URL 書き換えを使用するか、プログラム自体のルーティング設定を使用することで実現できます. たとえば、tp5 や wordpress では URL ルールを自由に設定できます. 前者はホストを管理する権限が必要です,後者はより柔軟です。ただし、入り口を隠すために pathinfo が必要です。または URL 書き換えのサポート)
Web2.0 の世界では、多くのページが動的です (多くの Index.php など)。 /a/... またはindex.php?a=1&... このように、このような動的アドレスはあまり見栄えがよくなく、検索エンジンにとってもフレンドリーではありません。これらの動的 URL アドレスを静的アドレスに偽装するには、何らかの技術的手段が必要です。 URL アドレス。これは擬似静的です。 したがって、擬似静的とは、いくつかのテクノロジーを使用して動的アドレスを静的アドレスに変換し、通常どおりアクセスできるソリューションを指します。特定のテクノロジーを指すものではありません。 それでは、擬似静的を実現するためにどのようなテクノロジーが必要なのかを見てみましょう:Web ホスト書き換えモジュール (URL 書き換え、変換された書き換え)中国語に書き換えるためですが、多くの人はそれを擬似静的とも呼びます)
pathinfo (ホスト、index.php/path、およびURL を再利用します。書くことで入り口を隠すことができます)
プログラムのルーティング (URL を美しくしたり、短くしたり、より人間的でセマンティックにすることができます)
補足: 言及されていないもう 1 つの非常に重要な点があります、それは [サフィックスの追加] ですが、これは技術とみなされないため、上記の技術リストには記載されていません。サフィックスの追加は上記の各ステップで使用でき、プログラム内で URL を生成するときにサフィックスを制御するだけで実行できます。また、サフィックスは API の設計時に役立つ場合があり、サフィックスは返されるデータ形式を表す必要があります (参考: REST デザイン スタイル)。
分析:
- #最初のソリューションには、強力であるという利点があります (モジュール ルールの書き換えを使用して、定期的なマッチングなどをサポートします)機能)、任意の URL 書き換えを実現できますが、多くの複雑な URL 書き換えルールを設定する必要があるという欠点があります(Duoduo リベート プログラムは、この方法を使用して擬似静的を作成します。擬似静的がオンになっている場合、プログラムはURL には疑似静的ルールがあり、ホストが必要です。同時に、対応する URL 書き換えルールを手動で構成するには、ホスト管理権限が必要です。ホスト上で構成が変更された場合は、Web サーバーを再起動する必要があります ( .htaccess をサポートする場合は再起動する必要はありません)。
- これには Web ホストのサポートが必要です。PATHINFO をサポートするホストは、index.php/home/index/index などの URL アクセスをサポートできるため、値を取得できます。 Web 言語 (PHP など) プログラムは
$_SERVER['PATH_INFO'] = '/home/index/index'
を取得できます)。この機能
Using URL rewriting によれば、単純な URL 書き換えルールを使用するだけで、エントリ ファイル以降のすべてのパラメータを書き換えることができるため、エントリ ファイルを非表示にすることができます。もちろん、これはエントリ ファイルを非表示にするだけです。 thinkphp では、ホストが PATHINFO をサポートしていない場合 (nginx の以前のバージョンなど)、互換モード (?s=/m/c/a) を使用して pathinfo をシミュレートして、エントリ ファイルindex.php# を非表示にすることもできます。 ##プログラム上のURL書き換えとも言えます(上記の書き換えはホストのURL書き換えです)ホストのURL書き換えを参考にした設計となっておりますので、ルーティング ルールもホスト URL 書き換えルールとほぼ同じです。利点は強力な機能と柔軟なルール構成であり、欠点は解析のパフォーマンスです (これが唯一の欠点であり、他は利点です)。 (WordPress カスタム URL は実際にはカスタム ルートです)
一般主机都能开启rewrite模块/功能支持URL重写,这很关键,这样实现隐藏入口文件了,这是第一步,再利用pathinfo(或者兼容模式),还有程序的路由,这样配合起来就能够实现简洁明了的URL地址了,也就是实现我们所说的伪静态。 原始的 其实如果你的入口是index.php,使用兼容模式也可以隐藏入口的,直接?s=/m/c/a,?m=home&c=index&a=index 因为大多主机默认配置的有默认访问文件/入口。 下面分析nginx的部分配置: 主配置:/usr/local/nginx/conf/nginx.conf 每一个虚拟主机在虚拟主机配置目录都有一个对应的配置文件 伪静态单独放一个目录,需要时被虚拟主机配置文件引入,这样方便管理 伪静态是一种效果,准确的说这是主机的URL重写规则/配置文件。但一般大家也习惯性称之为伪静态配置、伪静态文件,开启伪静态,伪静态模块,伪静态功能了,其实伪静态只是最终实现的效果。 thinkphp程序的伪静态配置文件:/usr/local/nginx/conf/rewrite/thinkphp.conf thinkphp伪静态配置文件.htaccess(Apache环境) 推荐学习:《PHP视频教程》
扩展知识
index.php?m=home&c=index&a=index
实在是太难看了,所以即使不全伪静态,不用路由,也最好抛弃这种原始的地址,因为有些接口开发中已经不支持使用这类url地址了,所以务必使用 pathinfo
的形式:index.php/home/index/index
,在隐藏入口,再加个后缀 home/index/index.html
就完美了,如果是做API或者有特殊用途的话还可以带上特定的后缀,比如看云、github仓库克隆时代.git
后缀的仓库地址。user www www;worker_processes auto;error_log /data/wwwlogs/error_nginx.log crit;pid /var/run/nginx.pid;worker_rlimit_nofile 51200;events {
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 1024m;
sendfile on;
tcp_nopush on;
keepalive_timeout 120;
server_tokens off;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#Gzip Compression
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/x-javascript
text/x-json application/json application/x-web-app-manifest+json
text/css text/plain text/x-component
font/opentype application/x-font-ttf application/vnd.ms-fontobject
image/x-icon;
gzip_disable "MSIE [1-6].(?!.*SV1)";
#If you have a lot of static files to serve through Nginx then caching of the files' metadata (not the actual files' contents) can save some latency.
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;######################## default ############################
server {
listen 80;
server_name _;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/default;
index index.html index.htm index.php;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ [^/].php(/|$) { #fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
access_log off;
}
location ~ .*.(js|css)?$ {
expires 7d;
access_log off;
}
}########################## vhost #############################
include vhost/*.conf;}
[root@iZuf6fvttmu9vkdbnencgpZ vhost]# lsdingtalk.uogo8.com.conf lipin.uogo8.com.conf tv.uogo8.com.conf
gj.uogo8.com.conf test.uogo8.com.conf www.uogo8.com.conf
虚拟主机配置文件:/usr/local/nginx/conf/vhost/www.uogo8.com.conf
server {
listen 80;
server_name www.uogo8.com uogo8.com;
access_log /data/wwwlogs/www.uogo8.com_nginx.log combined;
index index.html index.htm index.php;
include /usr/local/nginx/conf/rewrite/www.uogo8.com.conf;
root /data/wwwroot/www.uogo8.com;if ($host != www.uogo8.com) {
rewrite ^/(.*)$ $scheme://www.uogo8.com/$1 permanent;
}
location ~ .php { #fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") { set $real_script_name $1; #set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name; #fastcgi_param PATH_INFO $path_info;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
access_log off;
}
location ~ .*.(js|css)?$ {
expires 7d;
access_log off;
}
}
[root@iZuf6fvttmu9vkdbnencgpZ vhost]# cd ../rewrite/[root@iZuf6fvttmu9vkdbnencgpZ rewrite]# lsnone.conf thinkphp.conf www.uogo8.com.conf
location / {
if (!-e $request_filename) { # 不支持pathinfo,那就使用url重写,重写成兼容模式,来达到隐藏入口的效果
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
<ifmodule>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f # 直接利用url重写,重写成 pathinfo 模式
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</ifmodule>
uogo8的伪静态配置文件:/usr/local/nginx/conf/rewrite/www.uogo8.com.conf
location / { if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last; break;
}
}
######################################################################## OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+ ## For more information please visit https://oneinstack.com ########################################################################Your domain: www.uogo8.com
Virtualhost conf: /usr/local/nginx/conf/vhost/www.uogo8.com.conf
Directory of: /data/wwwroot/www.uogo8.com
Rewrite rule: /usr/local/nginx/conf/rewrite/thinkphp.conf
以上がPHP ルーティングと擬似静的アプリケーションについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版
便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
