在我的机器上,用户页面重定向到/是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>
答案 0 :(得分:0)
我知道发生了什么事,感谢Twitter的朋友(@bjori)。
正是内容协商导致了上述所有问题。
添加:
Options -MultiViews
在我的.htaccess修复了这个问题。这使得这个问题成为mod-rewrite question: /test/method is rewritten to test.svg/method
的骗局