【问题标题】:Problems with Wordpress’ mod_rewrite rules when requesting existing files请求现有文件时 Wordpress 的 mod_rewrite 规则出现问题
【发布时间】:2011-03-26 23:08:39
【问题描述】:

请看一下我的 .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

对于 Wordpress,它可以正常工作。

但我有一个问题:我有一个名为lo的目录,用于链接交换,与Wordpress博客无关。 现在,我无法访问我的 lo 目录,它会将我重定向到 wordpress 帖子。 为什么?

【问题讨论】:

  • 您如何尝试访问该目录?
  • 我已经安装了 wordpress hive,如果这有帮助的话
  • lo 目录在网络根目录内?

标签: wordpress .htaccess mod-rewrite


【解决方案1】:

/lo/DirectoryIndex 是否指向/lo/index.php

如果是这样,并且假设您对 Pekka 问题的回答是“是”,那么问题可能源自第四个RewriteRule。对/lo/ 的请求映射到/lo/index.php,匹配

RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

...并在您的站点根目录(即 WordPress 文件)中被重写为 index.php。我不确定这条规则的意义是什么(它确实阻止了对 WordPress .php 文件的访问,但以一种超级通用的方式),所以我不知道调节它的最佳建议是什么,但以下方法可行:

RewriteCond %{REQUEST_URI} !^/lo
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多