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


Apache htaccess Options +FollowSymLinks no longer works at hosting company Hostgator

我的网站托管在Hostgator上。几年来,在我的.htaccess文件中重写工作得很好。突然间,他们停止了工作。有问题的指令是htaccessfile中的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

任何见解将不胜感激。我还想让你们知道是什么解决了我的问题,以防你们也遇到这个问题。经过三天的代码重写,它只是破坏重写的加号。

仅使用一行选项:

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

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

通常,如果多个选项可以应用于一个目录,则 使用最具体的一个,忽略其他的;选项不是 合并。(请参阅各节的合并方式。但是,如果所有选项都打开 选项 指令前面有一个 + 或 - 符号,选项是 合并。任何前面带有 + 的选项都将添加到当前选项中 生效,并且任何前面带有 - 的选项都将从选项中删除 目前有效。