不需要的默认重写/别名

时间:2012-12-03 00:21:46

标签: apache mod-rewrite rewrite

在我的机器上,用户页面重定向到/是userpage.html或userpage.php的别名,甚至在我没有设置任何重写规则之前,或者即使我关闭了重写。它必须是我不知道的默认设置。

我在Fedora上使用apache并没有搞乱默认配置,除了打开基于名称的虚拟主机

我得到一些额外的奇怪结果,也许是相关的。此代码不起作用:

RewriteRule userpage/vidnum/(.*)$   userpage.php?vidnum=$1 [NC,L]

这个确实有效:

RewriteRule vidnum/(.*)$   userpage.php?vidnum=$1 [NC,L]

我写的所有重写规则都必须存在于.htaccess,BTW,因为需要服务器托管的灵活性。

我的虚拟主机设置如下=没有什么奇怪的AFAIK:

<VirtualHost *:80>
    ServerAdmin webmaster@keryx.se
    DocumentRoot /home/gunther/arkiv/workspace/webbteknik
    ServerName wt.book
    ErrorLog logs/wt.book-error_log
    CustomLog logs/wt.book-access_log combined
    <Directory /home/gunther/arkiv/workspace/webbteknik>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

我知道发生了什么事,感谢Twitter的朋友(@bjori)。

正是内容协商导致了上述所有问题。

添加:

Options -MultiViews

在我的.htaccess修复了这个问题。这使得这个问题成为mod-rewrite question: /test/method is rewritten to test.svg/method

的骗局