1

私はPHPを使用しています。

動作するhtaccessファイル

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule .*[^/]$ $0/ [L,R=301]
RewriteCond $1 !^(index\.php)
RewriteRule ^(.+)$ index.php/$1 [L]

#コメントのある行を見てください。コメントを外すと、スラッシュへのリダイレクトが追加されます。toroPHPでURL書き換えを使用しています。

エンディングスラッシュに書き直したい

  • 上記のコードのように、書き換えられたURLからスラッシュを終了するようにリダイレクトしたいと思います。
  • jquery.js、style.cssなどの実際のファイルからスラッシュを終了したくありません。

例(2012年12月21日更新)

  • /category/testする必要があります/category/test/
  • http://www.test.com/myjsfile.jsする必要がありますhttp://www.test.com/myjsfile.js

問題

  • コメントなしで上記のコードを使用すると、javascriptファイルとcssファイルを含むすべてのURLに終了スラッシュが追加されます。
  • 書き直したURLはスラッシュで終わらせたいだけです。

質問

htaccessでできますか?もしそうなら、どのように?

4

1 に答える 1

0

htaccessはほぼ正しかった。ただし、REQUEST_FILENAME最初のルールの直前ではなく、すべての書き換えルールの前にある必要があります。

これは動作します

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*[^/]$ $0/ [L,R=301]

RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php/$1 [L]
于 2012-12-27T12:38:25.047 に答える