【问题标题】:mod_rewrite enabled but does not work properlymod_rewrite 已启用但无法正常工作
【发布时间】:2011-06-16 21:34:51
【问题描述】:

大约一个小时前,我添加了

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*[^/])/?$
RewriteCond %{DOCUMENT_ROOT}%1.php -f
RewriteRule .+ %1.php [QSA,L]

到我的.htaccess 文件。但它不起作用。当我访问 mywebsite.com/info 或 mywebsite.com/info/ 时,它不起作用(页面是 info.php)。 mod_rewrite 已启用 - RewriteRule 对其进行了测试,将我从我网站的任何页面重定向到 google。

我不知道是什么问题.. 可能是代码错误?

谢谢。

【问题讨论】:

  • 也许您在%{DOCUMENT_ROOT} 之后缺少/?完全不确定,但这是唯一引起我注意的事情
  • @Pekka,试过了,不行。
  • 嗯。您可以尝试完全删除第二个 RewriteCond 吗?只是看看它是否有效
  • @Pekka,当我删除它时出现内部服务器错误。
  • 奇怪。我暂时没有想法......

标签: linux apache .htaccess mod-rewrite


【解决方案1】:

@罗恩

试着把最后两行改成这样:

RewriteCond %1.php -f
RewriteRule .+ %1.php [PT]

您需要[PT] 才能正确处理 PHP 文件。

【讨论】:

    【解决方案2】:

    GoDaddy 大约需要一个小时来解析您新上传的 .htaccess 文件。真奇怪。但是,如果您只是等待,该文件应该可以正常工作。

    【讨论】:

      【解决方案3】:

      这是我需要的规则才能工作:

      RewriteEngine on
      Options +FollowSymlinks
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}\.php -f
      RewriteRule ^(.*)/$ $1.php [L]
      

      【讨论】:

        猜你喜欢
        • 2013-05-21
        • 2011-08-12
        • 2011-12-18
        • 2010-12-30
        • 2020-10-07
        • 2017-02-11
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多