【问题标题】:htaccess - Wordpress inside Silverstripehtaccess - Silverstripe 中的 Wordpress
【发布时间】:2017-07-03 23:49:00
【问题描述】:

我在 Silverstripe 安装的子目录中安装了 Wordpress。由于重写,我无法显示 Wordpress 网站的前端,但是如果我附加 /index.php,后端工作没有问题。

如果我尝试将 /index.php 附加到 /subdirectory/index.php 它会重定向回子目录。 WP htaccess 中没有规则,所以我认为 Silverstripe 不喜欢这些扩展。

我尝试通过在重写引擎后将其添加到 Silvestripe 站点来排除整个子目录文件夹:

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

没有做对。有没有办法让“子目录”做自己的事情?

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite silverstripe


    【解决方案1】:

    重写规则也适用于子文件夹。如果您没有在您的 WP 子文件夹中有 .htaccess,您应该创建一个并禁用该文件夹的 URL 重写。因此,将具有以下内容的.htaccess 放入您的 WP 文件夹:

    <IfModule mod_rewrite.c>
        RewriteEngine Off
    </IfModule>
    

    当然,您也可以定义自定义重写规则……重要的是,您有自己的.htaccess

    【讨论】:

    • 对不起,我应该提到我已经尝试过了,但它会返回 403 错误,而后端仍然有效。删除 RewriteEngine 显示 Silverstripe 404 错误
    • @Craig 也许你没有 index.php 作为可能的索引页面?应该可以通过DirectoryIndex 设置修复...stackoverflow.com/questions/10002439/…
    • 再次非常感谢您!这似乎解决了问题。
    • 不要忘记在您的 WP 子文件夹中添加名为“_manifest_exclude”的空文件,否则 Silverstripe 会将所有 WP 类添加到其清单中,如果这些类中的任何一个具有相同的名称,这可能会导致 Silverstripe 中的错误.
    • 请注意,这会破坏 WP 的“漂亮 URL”永久链接。
    【解决方案2】:

    您应该在 SilverStripe 根文件夹和 WordPress 文件夹中都有规则,否则 WordPress 将无法在没有 index.php 的情况下运行。像这样的东西应该可以工作(虽然不是 100% 确定 WordPress 规则):

    SilverStripe .htaccess

    <IfModule mod_rewrite.c>
        SetEnv HTTP_MOD_REWRITE On
        RewriteEngine On
        RewriteBase '/'
    
        RewriteCond %{REQUEST_URI} !^/wordpress/.*
        RewriteCond %{REQUEST_URI} ^(.*)$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_URI} !\.php$
        RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L]
    </IfModule>
    

    /wordpress 文件夹中的 Wordpress .htaccess

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /wordpress/
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule>
    

    【讨论】:

    • 我还必须将这些行添加到我的 WP 的 .htaccess 文件中:DirectoryIndex index.phpOptions -Indexes
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2011-07-18
    • 2021-09-13
    相关资源
    最近更新 更多