【问题标题】:Apache mod rewrite .htaccess problemApache mod 重写.htaccess 问题
【发布时间】:2011-03-03 23:27:57
【问题描述】:

我的网站是一个基于 php 的网站,但我在 /blog/ 文件夹中添加了 wordpress。下面的 .htaccess 文件应该允许访问 /blog/ 文件夹,但我收到 404 错误,提示 blog.php 不存在。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{SCRIPT_FILENAME}  !\.(gif|jpg|png)$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)/(.*)/$ /$1_$2.php [L]
    RewriteRule ^(.*)/$ /$1.php [L]
</IfModule>

任何人都可以提供帮助吗?

【问题讨论】:

  • 那里有 WordPress 自己的 .htaccess 吗?
  • 不,根本没有其他 .htaccess

标签: apache .htaccess mod-rewrite


【解决方案1】:

最后一个 RewriteRule 将您的请求重定向到 /blog/index.php,您应该添加一个 RewriteCond 以检查请求是否在博客文件夹中。

RewriteCond %{REQUEST_URI} !^/blog/.*

【讨论】:

  • 感谢您的回复。我的理解是,我在那里的条件应该意味着如果文件/文件夹存在,它永远不会到达重写规则。显然不是这样的,你知道为什么吗?无论如何,在使用您的添加时我会得到以下信息:[code]在此服务器上找不到请求的 URL /blog.php。[/code]
【解决方案2】:

我使用下面的代码对此进行了管理,由于某种原因,建议的条件不起作用(我讨厌 .htaccess)

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(blog) - [L]
    RewriteCond %{SCRIPT_FILENAME}  !\.(gif|jpg|png)$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)/(.*)/$ /$1_$2.php [L]
    RewriteRule ^(.*)/$ /$1.php [L]
</IfModule>

【讨论】:

    【解决方案3】:

    添加

    RewriteRule ^(blog) - [L]
    

    到public_html/.htaccess之后

    RewriteEngine On
    

    在 Hostgator 帐户上使用 Fantastico 全新安装 Wordpress 以及 blog.example.com 子域也为我工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多