最近两天我试图在我的计算机上运行一些应用程序(Ubuntu 11.10,Apache / 2.2.20(Ubuntu),PHP版本5.3.6-13ubuntu3.1).它是在PHP Smarty中创建的,它使用重写规则.一切都很好用链接,如:
localhost/news
它正确地翻译成了
localhost/news.php
应该怎么做.但问题是更复杂的链接,如
localhost/message/inbox
它应该用规则翻译:
RewriteRule ^messages/(.*)$/messages.php?action=$1
但它不起作用.我试图调试它.我已经在登录http.conf了
RewriteLog "/home/krzysztofp/rewrite.log"
RewriteLogLevel 3
我能看到的是,在开始的时候
127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] add path info postfix: /var/www/engbook/messages.php -> /var/www/engbook/messages.php/inbox
然后它试图匹配message.php
127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] applying pattern '^messages/(.*)$' to uri 'messages.php/inbox'
虚拟主机:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
知道为什么会这样吗?
解决方法:
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
标签:apache,php,mod-rewrite
来源: https://codeday.me/bug/20190609/1208090.html