【发布时间】: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