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),请转到第二条规则 -

    如果 URI 匹配 division/some_division仅重写为index.php?division=some_division

  3. 如果没有定义划分,并且URI 匹配 area/some_area重写为index.php?area=some_area

我几乎可以肯定我可以结合前两个规则,我试过这个正则表达式,但它没有用:

^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 回答