1

正規表現をよく読みません。誰かが私がこれが何をしているのかを正確に理解するのを手伝ってもらえますか?

RewriteRule ^[!/.]*([\/A-Za-z0-9]+)$ index.php

私は基本的な考えを持っていますが、具体的な明確さではなく、重要なことを見逃したくありません。

4

1 に答える 1

2

この正規表現は、次のURLと一致します

  • !、/、またはで始まります。と
  • その後にスラッシュ、大文字、または数字が続きます。

このルールに一致するURLのすべてのリクエストは、index.phpに送信されます。

これは、次のようなURLを有効にするため、非常に珍しいRewriteRuleです。

http://example.com/!asdf 
http://example.com/!.asdf2
http://example.com/!./asdf5
http://example.com/./asdf5
http://example.com/.asdf5

このタイプの書き換えルールは、通常、存在しないファイル/ディレクトリの要求をフロントコントローラーに送信することを目的としています。このようなものはあなたにもっと役立つかもしれません:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php
于 2013-02-04T08:54:08.650 に答える