0

私の目標は単純です:

  1. と戦略を立てるものはすべてに/special行く必要があります/SpecialHandler.php
  2. 他のすべてはに行く必要があります/index.php

私の基本的な構成は次のように書かれていますが、機能しません。

RewriteEngine on
RewriteBase /
RewriteRule ^/special(.*)/?$ SpecialHandler.php [L,NC]
RewriteRule ^.*/?$ index.php [L]

以下は何が起こっているかです:

  • localhost-正常に動作します
  • localhost / bla_bla-bla%20bla-正常に動作します
  • localhost /special/-の代わりindex.phpSpecialHandler.php
  • localhost / special / fu / bar/bat- index.php代わりにSpecialHandler.php

これは私が見逃していることは明らかなことです。

4

1 に答える 1

1

特別なルールの最初の/を削除します:

RewriteRule ^special(.*)/?$ SpecialHandler.php [L,NC]

動作するはずです

-完全に機能するhtaccess

RewriteEngine on
RewriteBase /a/
RewriteRule ^special(.*)/? SpecialHandler.php [NC,L]
RewriteRule ^.*/?$ index.php [L]

url:

http://localhost/a/special => special
http://localhost/a/special/really => special
http://localhost/a/index.php => index
http://localhost/a/foobarbaz => index
于 2012-12-18T18:24:25.870 に答える