2016-07-04 105 views
0

我试图用.htaccess文件重写我的网址。我试图找出解决方案之前,我问,但似乎没有任何工作。你能帮忙吗?谢谢。。本地主机上的.htaccess文件

这里是我的.htaccess文件(在根文件夹):

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L] 

RewriteRule ^film/([^/]*)/([^/]*)\.html$ /html/movie/film.php?film=$1&genreID=$2 [L,QSA] 
</IfModule> 

我没有设置这些线(在等/ apache2的/网站可用/ 000-default.conf):

DocumentRoot /var/www 
<Directory "/var/www/html/movie"> 
    AllowOverride All 
</Directory> 

我使用的Linux队友Apache 2.4.7和error.log没有错。

回答

0

你是否允许在php.ini中使用mod_rewrite?

+0

我没有:)我会尝试.... – macalu

+0

然后你必须重新启动Apache服务器 – neattom

+0

我发现,mod_rewrite的不是一部分的PHP,但阿帕奇。我所做的是:'sudo a2enmod rewrite'和'sudo service apache2 restart',但仍然无效。 – macalu

0

根据000-default.conf,您在文档根文件夹中有一个.htaccess,它是/var/www

但是,您不允许在/var/www中使用.htaccess文件。根据000-default.conf,您允许/var/www/html/movie中的.htaccess文件。

要允许.htaccess文件在/var/www/var/www/html,您必须这样说,例如,

<Directory /var/www> 
    AllowOverride All 
</Directory> 

<Directory /var/www/html> 
    AllowOverride All 
</Directory> 

N.B.你不需要AllowOverride AllAllowOverride FileInfo是足够使用mod_rewrite,看到AllowOverride