【问题标题】:Apache htaccess Options +FollowSymLinks no longer works at hosting company HostgatorApache htaccess 选项 +FollowSymLinks 不再适用于托管公司 Hostgator
【发布时间】:2014-12-18 19:46:36
【问题描述】:

我的网站托管在 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

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

【问题讨论】:

    标签: php apache .htaccess mod-rewrite redirect


    【解决方案1】:

    仅使用一行选项:

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

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

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

    【讨论】:

    • 你解决了这个问题。我根据您的语法创建了 htaccess 文件,它运行正常。 (naberbiology.com) 感谢您的洞察力。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2018-12-19
    • 2018-02-17
    • 2013-03-03
    • 2021-12-04
    相关资源
    最近更新 更多