0

私は .htaccess mod_rewite ディレクティブを使用しており、2 つの異なることを達成したいと考えています。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?unit=/$1 [PT,L]

上記は指定された URL を取得し、それを index.php ブートストラップ ページに誘導します。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

上記により、ファイルを .php 拡張子なしで表示できます。

これを使用すると、URL を使用してファイルを指定でき、/module/function/settingロードするブートストラップ ページのパスが含まれます[root]/module/function/setting.php

2 つのアクションを 1 つのステートメントに結合する必要があります。

4

1 に答える 1

0

最初のルールの前に2番目のルールを配置するだけです。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^ %{REQUEST_URI}.php [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?unit=/$1 [PT,L]

そのため、htaccessは、(拡張子なしの)名前のスクリプトが存在するかどうかを確認して実行します。そうでない場合は、現在のルールが実行されます。

于 2013-02-18T16:53:49.587 に答える