Lighttpd url.rewrite

时间:2011-02-20 20:39:55

标签: url-rewriting lighttpd

我希望在没有.php扩展名的情况下访问我的/ framework /文件夹中的所有.php文件。在网上搜索了一段时间后,我发现了这个:

    url.rewrite = ( 
  "^/framework/([^?]*)(\?.*)?$" => "$1.php$2",
)

但当然会有后果,所以现在如果我访问/ framework /(localhost / framework /),它就不会加载index.php文件(localhost / framework / index.php)。相反,它给出了404。

如何使任何文件夹超出@ / framework /以加载目录index.php文件?

所以喜欢

  

本地主机/框架/控制器/

将是

  

本地主机/框架/控制器/ index.php的

我对此很新,所以如果你能向我解释你做了什么,那就太棒了。正如你所看到的,我对正则表达式并不是最好的。

1 个答案:

答案 0 :(得分:10)

专门为具有尾部斜杠的路径添加规则:

url.rewrite = (
  "^/framework([^?]*/)(\?.*)?$" => "/framework$1index.php$2",
  "^/framework/([^?]*)(\?.*)?$" => "/framework/$1.php$2"
)

以下是正则表达式如何工作的细分:

^          // Match the beginning of the string
/framework // Match any string starting with "/framework"
(          // Open the first group ($1 in the right hand side)
  [^?]*    // Match zero or more characters that are not '?'
  /        // Ending in '/'
)          // Close the first group
(          // Open the second group ($2)
  \?       // Match a '?'
  .*       // Match zero or more characters
)          // Close the second group
?          // Match the second group exactly once or not at all
$          // Match the end of the string