Apache htaccess选项+ FollowSymLinks不再适用于托管公司Hostgator

时间:2014-12-18 19:46:36

标签: php apache .htaccess mod-rewrite redirect

我的网站托管了Ar Hostgator。几年来我的.htaccess文件中的重写工作完美。他们突然停止了工作。有问题的指令是htaccess文件中的Options + FollowSymLinks指令。

这就是我的htaccess文件的样子:

Options +FollowSymLinks
RewriteEngine on
Options -Indexes

RewriteRule ^unit/([^/]+)?$ /unit/$1/ [R]
RewriteRule ^unit/([^/]+)/?$ /unit.php?unit=$1
RewriteRule ^unit/([^/]+)/([^/]+)/?$ /unit.php?unit=$1&category=$2

经过几天的故障排除后,我发现如果我从“FollowSymLinks”前面删除加号,它就可以了。

该指令现在看起来像这样:

Options FollowSymLinks
RewriteEngine on
Options -Indexes

我与Hostgator的技术支持人员谈过,他们不知道为什么它不再使用正确的语法,包括“+”符号。

旧的htaccess文件在我的本地开发环境中仍能正常运行。 如果我使用“+”加号上传htaccess文件,则重定向不起作用。如果我删除“+”符号并上传htaccess文件,则重定向工作。

我无法理解为什么不正确的语法函数和指令的正确语法不起作用。

我甚至直接使用Hostgator支持文章中的语法! http://support.hostgator.com/articles/general-help/apache-mod_rewrite-and-examples

任何见解都将受到赞赏。我也想让你们知道是什么解决了我的问题,以防你遇到这个问题。经过三天的代码重写,这只是打破重写的加号。

1 个答案:

答案 0 :(得分:2)

只使用一行选项:

Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine on
...

我添加-MultiViews 您可以阅读:http://httpd.apache.org/docs/2.2/en/mod/core.html#options

  

通常,如果多个选项可以应用于目录,那么   使用最具体的一个而忽略其他一个;选项不是   合并。 (请参阅如何合并部分。)但是如果所有选项都已合并   Options指令前面带有+或 - 符号,选项是   合并。任何前面带有+的选项都会添加到当前的选项中   生效,并且从选项中删除任何前面带有 - 的选项   目前有效。