【问题标题】:Wordpress htaccess in root overriding htaccess in subdomain. Subdomain app not working now根目录中的 Wordpress htaccess 覆盖子域中的 htaccess。子域应用程序现在无法运行
【发布时间】:2011-02-09 07:35:05
【问题描述】:

我们在服务器的根目录中安装了 WP,它运行良好。但是,我们只是在子域中安装了另一个应用程序。现在,我可以查看该应用程序的 index.php,但无法对其执行任何操作。根中的 htaccess 规则(来自 WP 基本安装)正在影响请求。

那么,如何消除 WP htaccess 文件对子域的影响?

这是根目录的 htaccess 内容(WP 安装):

<IfModule mod_rewrite.c>
RewriteEngine On
# BEGIN WordPress
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>

对于子域中的htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|css|stylesheets|js|images|user_guide|favicon\.ico|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我在网上到处搜索并尝试了几个我找到的示例。没有任何效果。

非常感谢任何帮助! 谢谢

更新: 似乎 Wordpress 可能不是罪魁祸首。出于好奇,我删除了 WP .htaccess 文件中的所有行。并且子域中的应用程序仍然无法正常工作。它的重写规则一定是错误的..

因此,第二个重写规则不起作用。如果我输入 /index.php?about 然后我可以看到关于页面.. 但它应该通过转到:/about

来显示

【问题讨论】:

    标签: wordpress .htaccess subdomain mod-rewrite


    【解决方案1】:

    WP 也是罪魁祸首(你有两个问题)。

    我可以解决第一个 .htaccess 问题,因为 WP 是可预测的。您想将此放在 BEGIN WordPress 部分之前:

    RewriteRule ^subdir-name/.*$ - [PT]
    

    它会抓取对您的子目录的任何请求并通过 (PT) 传递它,这样它就不会被 WordPress 劫持。

    您的第二个 .htaccess 中的问题是它似乎假设它仍在根目录中。对于这个,如果没有看到您的应用程序的布局,我无法确定,但是 index.php 之前的 / 很可能是错误的。您确定第二个文件中的路径与您的文件的新布局匹配吗?

    【讨论】:

    • 太好了..谢谢。在我看到你的答案之前(还没有测试过)我一直在尝试我在网上阅读的所有内容,这似乎适用于我需要正常工作的任何子目录:# stuff to let through (ignore) RewriteBase / RewriteCond %{ REQUEST_URI} "/sub-dir1/" [OR] RewriteCond %{REQUEST_URI} "/sub=dir2/" RewriteRule (.*) $1 [L]
    • 是的,您可以使用 RewriteConditions。虽然有些人有非常复杂的 .htaccess 文件(这可能是一件好事;它们比 PHP 处理一些人使用的东西更适合处理多种事情),如果你有很多不同的块,使用 RewriteConds 会更加繁琐处理的规则。 PT 是处理它的“正确”方法,但不是唯一方法。
    • 再次感谢!无论如何要为这个答案加分 - 我要到 15 分才能投票!!!跛脚!
    【解决方案2】:

    嗯...这应该工作吗?对于子目录“办公室” - 干杯:-)

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^office/.*$ - [PT]
    # BEGIN WordPress
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2015-04-06
      • 2012-09-28
      • 2012-06-06
      相关资源
      最近更新 更多