代码之家  ›  专栏  ›  技术社区  ›  revive

根目录中的wordpress htaccess覆盖子域中的htaccess。子域应用现在不工作

  •  6
  • revive  · 技术社区  · 15 年前

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

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

    下面是根目录(wp安装)的htaccess内容:

    <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?大约然后我可以看到关于页面。但它应该通过以下方式显示:/关于

    2 回复  |  直到 12 年前
        1
  •  5
  •   Nicholas Wilson    15 年前

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

    我可以解决第一个.htaccess问题,因为wp是可预测的。你想放这个 之前 begin wordpress部分:

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

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

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

        2
  •  2
  •   RobertPitt    15 年前

    嗯。。。这行吗?对于子目录“office”—干杯:—)

    <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>