0

私は正規表現をテストしており、これがこれまでに発明された中で最も効率的なパフォーマンス キラーであるという結論に達しました。

私の問題は、自分のサイトにより良い URL が必要であり、それを行う唯一の正しい方法は Apaches Rewriterule のようですが、正規表現で使用する必要があり、これを避けたいということです。

正規表現の使用を避けることが可能かどうか、また可能であればその方法を知っている人はいますか?

.htaccess で現在使用しているものは次のとおりです。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

どうすれば正規表現を取り除くことができますか?

4

1 に答える 1

2

リダイレクトするURLが事前にわかっている場合は、書き換えルールではなくリダイレ​​クトを使用する必要があります。リダイレクトには正規表現がありませんが、これは、書き換える各URLを指定する必要があることを意味します。

Redirect /BadUrl http://myhost.com/GoodUrl

しかし、現在存在しない無数のページをApacheによって新しいURLスキームにリダイレクトさせたい場合は、正規表現で立ち往生しているのではないかと思います。ただし、正規表現自体ではなくIOがサーバーの速度を低下させている可能性が高いというGerbenに同意する必要があります。私は、1日に数百万のリクエストがあるシステムで作業しており、主なパフォーマンスは書き換えルールではありません。問題...

基本的なリダイレクトが機能せず、mod_rewrite関数を使用したくない場合は、リダイレクトロジックをApacheから完全に移動することをお勧めします。すでにPHPを使用しているので、通常の404ファイルをPHPスクリプトに置き換えるだけで、URLを目的のURLスキームに書き換えることができます。また、ユーザーがブックマークを更新する機会も与えられます。

于 2012-05-07T12:15:09.787 に答える