2

ファイル拡張子を削除し、末尾にスラッシュを追加するために、Web サイトのルート フォルダーで以下の htaccess ルールを使用しています。ただし、サブディレクトリ /sub-dir/ をルート フォルダーの htaccess ルールから除外したいと考えています。RewriteOptions inherit/sub-dir/ フォルダーに別の htaccess を追加して、またはファイルに入れようとしRewriteEngine Offましたが、どれも機能しません。

RewriteEngine On
RewriteBase /

# redirect from non-www to www
RewriteCond %{HTTP_HOST} ^mywebsite.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^(.*)index.php$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]

# Remove trailing slash:
RewriteRule (.*)/$ $1 [L]

# Now test without the trailing slash:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_FILENAME}.php [QSA,L]

どんな提案でも大歓迎です。

ありがとう

4

1 に答える 1

10

これだけを持つサブディレクトリに htaccess ファイルを追加してみてください。

RewriteEngine On
RewriteRule ^ - [L]

継承オプションなし。継承とは、サブディレクトリの htaccess ファイル内のルールと共に、親の htaccess 内のルールも適用することを意味します。これにより、書き換えエンジンがオンになっていることを確認し、「何もしない」パススルー ルールを作成します。

それ以外の場合は、ルートの htaccess ファイルの先頭 ( のすぐ下RewriteBase)にパススルーを追加できます。

RewriteRule ^sub-dir/ - [L]
于 2014-10-22T03:39:20.070 に答える