使用mod_rewrite的意外行为

时间:2012-03-07 11:27:47

标签: apache mod-rewrite

您好我试图将myweb.com/ivan重写为一个简单的网址。

我在根目录中的.htaccess上得到了这个:

RewriteEngine On
    RewriteRule ^/something$ index.php?page=anunciante&anunciante=something [L,NC]
    RewriteRule (.*)/?restaurantes/(.+)?$ index.php?page=anunciante&anunciante=something [L,NC]

是的,两者都是一样的。如果我尝试输入myurl.com/ivan我会'找不到',但是如果我尝试输入myurl.com/restaurantes/something我会进入index.php没有问题。在我的index.php中,我有这个:

 print_r($_GET); die();

所以我得到了myurl.com/restaurantes/something:

Array ( [page] => anunciante [anunciante] => something )  

(如预期) 但我不知道为什么这不适用于myurl.com/ivan 我也尝试修改规则,如:

  RewriteRule ^/?ivan$ index...
  RewriteRule ^ivan$ index...
  RewriteRule ^/ivan index...

一切都没有成功。此外,我不知道在哪里要'favicon.ico'.. 这是mod_rewrite日志: 要求myurl.com/something 记录:http://pastebin.com/283kq3R8

要求myurl.com/restaurantes/something http://pastebin.com/5QcyuAuW

1 个答案:

答案 0 :(得分:0)

由@Gerben发布,不要在/前面加上你的规则。 尝试:

RewriteEngine On
RewriteRule ^ivan$ index.php?page=anunciante&anunciante=ivan [L,NC]
RewriteRule (.*)/?restaurantes/(.+)?$ index.php?page=anunciante&anunciante=something [L,NC]

http://myweb.com/ivan http://myweb.com/restaurantes/something