Php 与规则具有相同文件名的永久链接重写规则

Php 与规则具有相同文件名的永久链接重写规则,php,macos,apache,mod-rewrite,permalinks,Php,Macos,Apache,Mod Rewrite,Permalinks,我使用的是Mac OSX Lion和本机apache,php5安装重写引擎仍在运行存在问题,该问题的显示比解释更好,因此我有以下两条规则,一条有效,另一条无效: RewriteRule ^imovel/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1 这个规则不起作用,它会进入文件imovel.php,但它不会传递变量,因此如果我将这个^imovel/更改为其他类似^blerg/的内容,效

我使用的是Mac OSX Lion和本机apache,php5安装重写引擎仍在运行存在问题,该问题的显示比解释更好,因此我有以下两条规则,一条有效,另一条无效:

RewriteRule ^imovel/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1
这个规则不起作用,它会进入文件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
这个规则很好用,但这个问题只在我使用的mac电脑上出现。在Windows7上使用同样的规则也可以。是否需要在apache中进行任何配置才能更改此设置?

来自:

你有吗 安装?如果是这样的话,那就接受你的新要求并努力工作 找出你真正想发送的文件。确保你没有 选项多视图集。因此,在.htaccess看跌期权中 -多视图

发件人:

你有吗 安装?如果是这样的话,那就接受你的新要求并努力工作 找出你真正想发送的文件。确保你没有 选项多视图集。因此,在.htaccess看跌期权中 -多视图

您的站点必须启用多视图。如果是这样,/imovel.php将通过键入/imovel来加载,因此,它正在加载/imovel.php,而不是您的重写代码。但删除“多视图”将消除此问题

为了解决这个问题,我必须在使用终端的文件下的httpd.conf、vhost.conf或user.conf文件中添加几行代码

sudo nano /etc/apache2/httpd.conf
sudo nano /etc/apache2/users/user.conf
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
我不知道在lion中哪里可以找到这些文件,但在MacOSX maverick中,它在/etc/apache2/中,但它现在和将来都在apache2文件夹中,在这个文件中,上面哪个文件有你的站点目录,我必须从选项中删除多视图代码/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页面就不能再通过键入/index来加载了。因此,我可以使用最初在.htaccess文件中使用的代码。一切都在天堂里解决了

如果有帮助,请告诉我。

您的站点必须启用多视图。如果是这样,/imovel.php将通过键入/imovel来加载,因此,它正在加载/imovel.php,而不是您的重写代码。但删除“多视图”将消除此问题

为了解决这个问题,我必须在使用终端的文件下的httpd.conf、vhost.conf或user.conf文件中添加几行代码

sudo nano /etc/apache2/httpd.conf
sudo nano /etc/apache2/users/user.conf
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
我不知道在lion中哪里可以找到这些文件,但在MacOSX maverick中,它在/etc/apache2/中,但它现在和将来都在apache2文件夹中,在这个文件中,上面哪个文件有你的站点目录,我必须从选项中删除多视图代码/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页面就不能再通过键入/index来加载了。因此,我可以使用最初在.htaccess文件中使用的代码。一切都在天堂里解决了


如果有帮助,请告诉我。

你能给出一个你将要使用的URL的例子吗?blabla.local/imovel/47/plant/executive_lunai/->this dint workbla.local/blerg/47/plant/executive_lunai/->这个工作你能给出一个你将要使用的URL的例子吗使用?blabla.local/imovel/47/partment/executive_lunai/->此力工作blabla.local/blerg/47/partment/executive_lunai/->此功能有效