【问题标题】:How can WordPress and YOURLS peacefully coexist at the root level?WordPress 和 YOURLS 如何在根级和平共处?
【发布时间】:2016-07-13 10:20:01
【问题描述】:

我想使用 YOURLS 提供更好的链接缩短服务。我为此购买了一个简短的 URL:sly.pe。 YOURLS 已安装并且可以访问 sly.pe/admin。

我还想使用 WordPress 为大多数面向消费者的网站提供支持,网址为:sly.pe。我希望用户使用 WordPress 和 OneAll social 之类的注册插件来注册该网站。一旦通过身份验证,他们就会同时登录 YOURLS 和 WordPress,并被重定向到使用 WordPress 作为站点的 sly.pe/home 之类的 URL,但 YOURLS(该用户的 sly.pe/admin)已嵌入并可通过某种方式访问​​。

这两个服务都会对 .htaccess 进行更改。如果我将文件保持原样,除了 sly.pe 之外,我似乎没有任何其他 WordPress URL,但 YOURLS 工作正常。如果我注释掉一些YOURLS 代码,WordPress 可以使用其他目录,但是YOURLS 不起作用。我怎样才能让两者很好地共存?或者至少定义我想要的 WordPress URL 并让它们正常工作?

(注释掉 YOURLS 代码可以让 WordPress 正常工作,但会破坏 YOURLS): .htaccess:

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

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

# END WordPress

【问题讨论】:

    标签: wordpress .htaccess redirect yourls


    【解决方案1】:

    我能够让您的人使用 WordPress。我是这样做的...

    我已将您的链接放在 niemannross.com/links - 所以对我来说,重定向看起来像 http://niemannross.com/link/rlunchlessons

    在您的 WordPress 副本中安装 John Godley 的 Redirection 插件。

    查看 Wordpress:Admin:Tools:Redirection。顶部有几个选项卡。您应该看到重定向 |团体 |日志 | 404 |进口/出口 |选项 |支持。

    选择重定向

    选择添加新重定向

    来源网址:/link/.* - 选择正则表达式。

    目标网址:/link/yourls-loader.php

    组:在您的设置中有意义的任何内容。我选择了 wordpress:redirections

    这适用于我的安装。

    【讨论】:

      【解决方案2】:

      简单的答案是:你不能。 WordPress 和 YOURLS(请是 YOURLS,不是 YourLS)都需要处理服务器请求以返回预期的结果(例如,在请求 http://sho.rt/blah 时,每个应用都需要检查 blah 是否是它管理的内容)

      长答案:您不应该因为以下所有原因。

      基本上你需要一些在以下情况下可以工作的东西:

      • blah 是 WP 文章,但不是您的短网址
      • blah 是您的短网址,但不是 WP 文章
      • blah 既不是 WP 文章也不是您的短网址
      • blah 既是 WP 文章又是您的短 URL 时,可选择决定做什么

      您的代码还需要:

      • 防止 WP 创建一个已经是您的短 URL 的“slug”
      • 防止 YOURLS 创建已匹配 WP slug 的短 URL

      您需要在 WP 区域和 YOURLS 区域中都有这方面的代码。

      底线:需要处理很多边缘情况。在某些情况下可能对您有用的方法在其他情况下可能对您或与其他人无效。

      【讨论】:

      • 非常感谢您的回复。我将通过使用一个子域来解决这个限制,比如 home.slype.com。感谢您的解释。克里斯
      【解决方案3】:

      我认为您将不得不解决@Ozh 提到的问题,但这里有一个插件可以让您的 WordPress 用户更轻松地使用 YOURLS:https://wordpress.org/plugins/yourls-link-creator/

      【讨论】:

        【解决方案4】:

        你不能,我尝试了不同的方法,也许使用新的 apache 2.4 使用 if else 语句你会,但我不是这些命令的专家,我想分享我在根目录中使用缩短选项所做的事情页面和子目录中的 html 站点,通过此解决方案,您仍然可以为人们提供网站的正常 url(例如 sho.rt):

        将您的网站设置在根目录下的文件夹中,并命名为例如“w”,这意味着它将在“sho.rt/w

        然后使用这个.htaccess

        # BEGIN YOURLS
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^.*$ /yourls-loader.php [L]
            RewriteRule ^$ /w [L]  
        </IfModule>
        # END YOURLS
        

        如果用户没有在 url 中传递任何子文件夹,这将为您提供仍然使用 sho.rt 作为您的网站地址的选项,但如果他们这样做了,它将首先检查您的如果没有找到,请转到您的文件夹。

        还有一点,不要忘记在 /user/config.php$yourls_reserved_URL 数组中添加“w”(Yourls配置文件)

        【讨论】:

          猜你喜欢
          • 2021-05-06
          • 2010-09-29
          • 2015-03-09
          • 1970-01-01
          • 2011-05-22
          • 2013-02-20
          • 1970-01-01
          • 2011-11-25
          • 1970-01-01
          相关资源
          最近更新 更多