ルールを特定のリクエストに制限するには、RewriteCond
. それらに関するドキュメントはこちらにあります。
それを機能させるにwww.domain.com/directory/
は、これを RewriteRule 自体に追加します。永続的なリダイレクトを使用しているため、サイトのブラウザからキャッシュをクリアするまで、現在行っている変更は機能しないことに注意してください。
RewriteRule ^directory/([^_]*)_([^_]*_.*) /directory/$1-$2 [N]
RewriteRule ^directory/([^_]*)_([^_]*)$ /directory/$1-$2 [L,R]
css および js ファイルを除外するには、次のようなものを使用できます。これにより、または( )!
で終わる ( ) ファイルが除外されます。.css
.js
\.(css|js)
RewriteCond %{REQUEST_URI} !\.(css|js)$
RewriteRule ^directory/([^_]*)_([^_]*_.*) /directory/$1-$2 [N]
RewriteRule ^directory/([^_]*)_([^_]*)$ /directory/$1-$2 [L,R]
これらのルールをテストすることはできません。実際のサイトで実行する前に、単純な localhost サーバーをセットアップしてテストすることをお勧めします。サイトでリダイレクトをテストする場合は、永続的なリダイレクト ( ) ではなく、常に一時的なリダイレクト ( ) を使用してください。永続的なリダイレクトはブラウザによってキャッシュされ、後続のリクエストに対するサーバーの負荷が軽減されますが、テストしている場合は、以前の試行が記憶されます。すべてのルールが希望どおりに機能した後でのみ、一時的なリダイレクトを永続的なリダイレクトに変更してください。[R]
[R=301]