【问题标题】:htaccess not working on windows server 2003 with apache installedhtaccess 在安装了 apache 的 Windows Server 2003 上不起作用
【发布时间】:2014-04-10 03:08:57
【问题描述】:

我已经安装了 Apache。

我已取消注释 LoadModule rewrite_module modules/mod_rewrite.so,并在 http.conf 中将 AllowOverride None 的每个实例设置为 AllowOverride All

我的网站位于一个子文件夹中,因此可以使用 http://123.34.56.123/Website/ 访问它。

.htaccess 文件

RewriteEngine On 
RewriteBase /Website/ 
Options +FollowSymLinks 

RewriteRule ^index.php http://www.google.com/? [R=301,L]

但是当我访问上述地址时,它并没有重定向到 google.com,而是显示了 index.php 的内容。

更新:

在 .htaccess 文件和 http.conf 中添加了垃圾以强制内部服务器错误,它仍然只是进入我的 index.php。

$_SERVER 上做了一个 var dump,发现了这个:["SERVER_SOFTWARE"]=> string(17) "Microsoft-IIS/6.0",但在 IIS 周围找不到任何程序文件。

【问题讨论】:

  • .htaccess 文件在哪个文件夹中?另外,只是一种预感:您在帖子中反复称其为“htaccess 文件”。文件名必须.htaccess。你能确认它的名字是正确的吗?
  • 如果这是全新安装 -- 一个常见的 windows 问题是以非管理员身份编辑 httpd.conf,windows 为非管理员创建它的卷影副本 -- httpd 继续使用真实文件。快速测试是附加“fdsfsfsfs”并查看它是否会破坏 Apache。
  • @covener 嗯,所以我编辑了 http.conf 文件,将垃圾附加到它上面,它并没有破坏 Apache。你让我走上了一条新的道路,谢谢!

标签: php apache .htaccess mod-rewrite windows-server-2003


【解决方案1】:

根据您的问题,您的问题的一些可能原因:

  • .htaccess 文件名称不正确。您在帖子中反复称其为“htaccess 文件”。文件名必须.htaccess(以.开头)。

  • 文件在错误的目录中。确保此文件位于您网站的根目录中。

  • 您需要启用的模块不是mod_userdir.so,而是mod_rewrite.so。寻找这样的一行:LoadModule rewrite_module modules/mod_rewrite.so

  • 确保[R=301,L] 与其适用的RewriteRule 在同一行,否则会出错。

另外,即使是为了测试,也不要在此使用 301 - 它会将流量永久重定向到您的 index.php 到 Google。这就是301的作用。对于测试,请使用302

【讨论】:

  • 对我的困惑和错误感到抱歉。它被命名为.htaccess,位于我网站的根目录/Website/。启用的模块也是正确的,我修复了我的帖子以反映这一点。此外,RewriteRule 与标记位于同一行,[R=301,L] - 这是某人在编辑我的帖子时输入错误的结果。
【解决方案2】:

将评论转换为答案,如果您对 httpd.conf 的更新神秘地无法更改 Windows 上的任何内容,请以管理员身份(不是管理员组的成员,管理员)编辑 httpd.conf 以避免 Windows 默默地执行“数据重定向”的 httpd.conf 从 Program Files 中编辑出来。

http://blogs.windows.com/windows/archive/b/developers/archive/2009/08/04/user-account-control-data-redirection.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多