2012-08-06 64 views
10

Iam试图将我的主页或网站上的任何其他页面重定向到特定的PHP页面。 这是我的htaccess.htaccess没有被读取

Redirect 301 http://test.com/info http://test.com/get_forms_data.php 
Options +FollowSymlinks 
RewriteEngine ON 
RewriteRule ^test.php$ http://test.com/get_forms_data.php [R=301,L] 

我检查我的Apache服务器.rewrite启用。

它仍然无法正常工作。

+0

该文件是否具有正确的权限? – Viehzeug 2012-08-06 07:17:55

+2

当您故意向文件中引入错误时,是否出现错误? (看它是否被解析) – 2012-08-06 07:18:01

+0

@Viehzeug - 是的,我给了正确的权限。 – user1411837 2012-08-06 07:21:37

回答

25

如果不管你把你的.htaccess文件,你甚至不得到一个错误,这意味着你可能需要有

AllowOverride All

集现场配置。

如果你在Ubuntu上,查找配置的地方是/etc/apache2/sites-available/。如果这是缺省的LAMP堆栈(https://help.ubuntu.com/community/ApacheMySQLPHP)的库存安装,那么您应该找到一个名为default的文件。

关键部分有这样的:

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

现在改变AllowOverride NoneAllowOverride All。在那之后,不要忘记重新启动Apache的,像这样:

$ service apache2 restart 
+0

对我来说是一个不同的问题 – lbennet 2014-01-13 04:37:14

8

作为除摩根的回答,把AllowOverride All在您的虚拟主机有时不够。我在虚拟主机有这样的:

<VirtualHost *:80> 
    ... 
    <Directory /> 
    ... 
    AllowOverride All 
    ... 
    </Directory> 
</VirtualHost> 

你会想到这个工作,你会不会,<Directory />意味着它应该被应用到无处不在文件系统上。但.htaccess仍被忽略。重新启动服务器没有帮助。我把.htaccess文件中的垃圾确认没有被读取。

我的错误是假设虚拟主机覆盖全局配置。它的种类确实如此:我的上述配置覆盖/目录的任何全局设置。但全局配置覆盖/var/www/及以下。我的解决方法是:

<VirtualHost *:80> 
    ... 
    <Directory /var/www> 
    ... 
    AllowOverride All 
    ... 
    </Directory> 
</VirtualHost> 

(假定没有外界/var/www应用所需的其他配置的;如果是这样,让某特殊配置的独立<Directory />块。)

1

我与挣扎同样的问题,达伦库克的回答给了我找到解决方案的明确线索。

我的应用程序位于www路径的某个文件夹中,例如/opt/my_app。 我不能创建一个VirtualHost,所以我创建了Apache的公共www庞廷一个符号链接到我的文件夹:

/var/www/html/my_app -> /opt/my_app

的事情是,在我的应用程序的Apache的配置文件,我被指定:

<Directory /opt/my_app> 
    AllowOverride All 
</Directory> 

而我的.htaccess文件未被读取。然后我看到,在Apache的配置有这样的:

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

然后我意识到Apache的配置文件不关心符号链接,因此一般规则被应用到我的应用程序的foler。我将Directory更改为:

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

而且一切正常。

+0

你让我的一天!非常感谢 – netzaffin 2017-11-10 03:49:21