Mod_rewrite头疼

时间:2011-10-10 04:29:04

标签: apache .htaccess rewrite

好吧,我只是想为网站设置一个简单的重写规则。 首先,在httpd.conf中我有

LoadModule rewrite_module modules/mod_rewrite.so

然后在一个单独的文件中我有这个别名设置

Alias /vworker/ "f:/vWorker/" 

<Directory "f:/vWorker/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

现在好了,所以网站的目录是

f:/vWorker/urlmask

在那里我有一个.htaccess文件,上面写着这个

RewriteEngine on
RewriteRule ^redirect/([0-9]+)/?$ index.php?redirect=$1 [L]

现在,我想要的是,如果我转到网址http://localhost/vworker/urlmask/redirect/3161513,它实际上会调用http://localhost/vworker/urlmask/index.php?redirect?3161513

从我的观点来看,一切似乎都设置正确,如果我在我的.htaccess文件中乱码,我会收到服务器错误,所以我知道它正在阅读它。

我最终得到的是一个页面,上面写着“未找到。在此服务器上找不到请求的URL / vworker / urlmask / redirect / 94173336828903446”。 我有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一般情况下,只要您有Alias,就需要RewriteBase才能让事情按预期进行。

在你的情况下,你应该

RewriteBase /vworker/urlmask/

与你的规则相同.htaccess。