htaccess扩展重写规则正在使用域名但不使用IP显示错误404

时间:2013-03-19 02:45:33

标签: php apache .htaccess rewrite

RewriteEngine on
RewriteRule ^(.*)\.txt$ $1.php

这是我用于网站特定目录的重写规则 http:// xxx.yyy.zz.aa /~nishant/directory/.htaccess

将所有.php扩展名更改为.txt

当我查看目录文件时:
http:// www.mysite.com / directory / order.txt(它正在工作)但是
http:// xxx.yyy.zz.aa / ~nishant / directory / order.txt(无效)

您认为问题是什么,以及适当的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

这可能是由您的'VirtualHost' - 配置引起的:/ etc / apache2 / sites-available / ...
详细地说,在包含'VirtualHost xxx.yyy.zz.aa:80'或'VirtualHost *:80'的文件中查找'AllowOverride ...'

可能缺少以下声明:

<Directory /home/*>
    AllowOverride FileInfo Options
</Directory>

或:

<Directory /home/nishant>
    AllowOverride FileInfo Options
</Directory>

至少需要'FileInfo'才能使mod_rewrite工作 mod_rewrite不需要'选项',但如果你使用.htaccess则通常需要'选项' http://httpd.apache.org/docs/2.2/en/mod/core.html#allowoverride