2012-08-16 90 views
1

我使用的是Mac OSX狮子和本地的Apache,安装PHP5重写引擎是工作还是有一个问题,这个问题是更好的显示比解释,所以我下面有一个和这条规则作品和其他没有:永久重写规则具有相同的文件名规则

RewriteRule ^imovel/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1 

此规则dosent工作就转到文件imovel.php,但它不传递变量,所以如果我改变了^ imovel /其他任何事情一样^ blerg /工程好像就像下面

RewriteRule ^blerg/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1 

这个规则工作正常,但这个问题只是sh在我工作的Mac上运行。有了Windows 7的这些相同的规则,工作很好。有没有我需要在Apache中做任何配置来改变这一点?

+0

你可以给你要,这应该与工作URL的一个例子吗? – 2012-08-16 22:47:37

+0

blabla.local/imovel/47 /公寓/ executive_lunai/- >这个力工作 – user1604470 2012-08-17 12:29:22

+0

blabla.local/blerg/47 /公寓/ executive_lunai/- >这个作品 – user1604470 2012-08-17 12:29:49

回答

0

您的网站必须有MultiViews启用。如果是这样,/imovel.php将在/imovel打字,因此,它加载/imovel.php,而不是你重写代码加载。但删除MultiViews你会消除这个问题。

为了解决这个问题我一直在使用终端的几行代码添加到我的httpd.confvhost.conf或我user.conf文件下<Directory "/Users/User/Sites">文件。

sudo nano /etc/apache2/httpd.conf 
sudo nano /etc/apache2/users/user.conf 
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf 

我不知道在哪里可以找到在狮子这些文件,但在Mac OSX上特立独行,它是在/etc/apache2/,但它并会在Apache2的文件夹,在这个文件中,曾文件之上有您的网站目录,我不得不从options删除MultiViews代码。 /Users/User/Sites是我自己的文件夹,所以请忽略它并查找您自己的站点文件夹。

<Directory "/Users/User/Sites"> 
    Options Indexes FollowSymLinks SymLinksifOwnerMatch MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

所以现在看起来是这样

<Directory "/Users/User/Sites"> 
    Options Indexes FollowSymLinks SymLinksifOwnerMatch 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

一旦我这样做,的index.php页面可以不再通过输入/指数加载。因此,我可以使用我最初在我的.htaccess文件中使用的代码。一切都在天堂解决。

让我知道是否有帮助。

0

this question

你有 mod_negotiation 安装?如果是这样,相信你的要求,为新尝试的工作 什么文件,你真正的意思发送。确保你没有设置 Options MultiViews。所以,在.htaccessOptions -MultiViews