0

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

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

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

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

这个确实有效:

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

由于需要服务器托管灵活性,我编写的所有重写规则都必须存在于 .htaccess 中,顺便说一句。

我的虚拟主机是这样设置的=没什么奇怪的 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>
4

1 回答 1

0

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

正是内容协商导致了上述所有情况。

添加:

Options -MultiViews

在我的 .htaccess 中解决了这个问题。这使得这个问题成为mod-rewrite 问题的欺骗:/test/method 被重写为 test.svg/method

于 2012-12-03T12:34:35.077 回答