首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与规则具有相同文件名的固定链接重写规则

与规则具有相同文件名的固定链接重写规则
EN

Stack Overflow用户
提问于 2012-08-17 05:55:34
回答 2查看 126关注 0票数 2

我正在使用Mac和原生apache,php5安装重写引擎仍然有一个问题,这个问题显示出来比解释好,所以我有以下两个规则,一个可以工作,另一个不能:

代码语言:javascript
复制
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/的值,效果会很好,如下所示

代码语言:javascript
复制
RewriteRule ^blerg/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1

这条规则运行得很好,但这个问题只在我使用的mac上出现。在Windows7上使用同样的规则就可以了。是否需要在apache中进行任何配置才能更改此设置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-07 17:50:40

您的站点必须启用MultiViews。如果是这样的话,/imovel.php将通过键入/imovel来加载,因此,它加载的是/imovel.php,而不是您的重写代码。但是删除MultiViews将会消除这个问题。

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

代码语言:javascript
复制
sudo nano /etc/apache2/httpd.conf
sudo nano /etc/apache2/users/user.conf
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

我不知道在lion中哪里可以找到这些文件,但在mac osx maverick中,它在/etc/apache2/中,但它现在和将来都在Apache2文件夹中,在这个文件中,上面那个文件中有你的站点目录,这是我从options中删除MultiViews的代码。/Users/User/Sites是我自己的文件夹,所以忽略它,寻找你自己的站点文件夹。

代码语言:javascript
复制
<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

所以它现在看起来是这样的

代码语言:javascript
复制
<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

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

如果有帮助,请告诉我。

票数 0
EN

Stack Overflow用户

发布于 2013-02-06 00:18:56

来自this question

您安装了mod_negotiation吗?如果是这样的话,这将接受你的新请求,并尝试找出你真正想要发送的文件。确保您没有设置Options MultiViews。因此,在.htaccess中放入Options -MultiViews.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11996011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档