0

アプリケーションの複数の領域を処理しようとしていますが、URL が期待どおりに書き換えられません。

これは .htaccess ファイルです。

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^division/(.*)/section/(.*)$ ./index.php?division=$1&section=$2
RewriteRule ^division/(.*)$ ./index.php?division=$1
RewriteRule ^area/(.*)$ ./index.php?area=$1

期待されること:

  1. URI が一致する場合は、次の division/some_division/section/some_sectionように書き換えますindex.php?division=some_division&section=some_section

  2. セクション ( ) が定義されていない場合section/some_sectionは、2 番目のルールに進みます。

    URI が一致する場合 division/some_divisionのみに書き換えますindex.php?division=some_division

  3. 部門が定義されておらず、URI が一致する 場合は、次のarea/some_areaように書き換えます。index.php?area=some_area

最初の2つのルールを組み合わせることができるとほぼ確信しています。この正規表現を試しましたが、うまくいきませんでした:

^division/(.*)( /section/(.*) )?$

オプションの/section/some_section値を作成することになっています。

残念ながら、何も機能しません。何か案は?

4

1 に答える 1

2
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^division/(.*)/section/(.*)$ ./index.php?division=$1&section=$2 [QSA,L]
RewriteRule ^division/(.*)$              ./index.php?division=$1            [QSA,L]
RewriteRule ^area/(.*)$                  ./index.php?area=$1                [QSA,L]
于 2012-07-15T11:56:10.600 に答える