2

mydomain.com/whatever「whatever」は任意の文字列にすることができるなどのURLが必要です。すべて、同じphpファイルを呼び出して、表示するものを分類します(または404を表示します)。ただし、ファイルやその他のphpファイルを正常に機能させたい(他の方法でエイリアス化されているもの、またはファイルシステムに実際に存在するもの)。

単純なAliasMatch /* myphpfile.php(httpd.conf内の他のすべてのエイリアスの後)私自身のセットアップでは正常に機能しますが、実稼働サーバーでは、ワイルドカードエイリアスが他のすべてのphpファイルをに送信しますmyphpfile.php。他に何が混乱しているのかわかりません。

技術的には、whatever文字列はアルファベットと小文字になるので、それをフィルタリングできますが、正規表現で行ったすべての試みは成功していません。

4

1 に答える 1

2

次のルールを使用します( mod_rewriteが必要です)。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

RewriteRule ([a-z]+) /myfile.php [L]
  1. Webサイトのルートフォルダの.htaccessに配置します。他の場所に配置する場合は、微調整が必​​要になる場合があります。

  2. これにより、存在しないすべての単一小文字のリクエストがに書き換えられます(内部リダイレクト) 。スクリプトを/myfile.php使用$_SERVER['REQUEST_URI']すると、呼び出されたURLを判別し、実行する内容(ルーティング)を決定できます。

  3. これは、のようなURLに対しては機能しますが、、、に対しては/whatever何もしません。/what-ever/hello/pinky/hello123

于 2011-07-29T19:26:41.450 に答える