3

我想使用 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
4

4 回答 4

2

我能够让你的人使用 WordPress。这就是我是如何做到的......

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

在您的 WordPress 副本中安装 John Godley 的重定向插件。

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

选择重定向

选择添加新重定向

源 URL:/ link/.* - 选择正则表达式。

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

组:在你的设置中任何有意义的东西。我选择了 wordpress:redirections

这适用于我的安装。

于 2018-09-18T20:31:32.090 回答
1

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

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

基本上你需要一些在以下情况下有效的东西:

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

您的代码还需要:

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

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

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

于 2016-05-14T14:33:46.420 回答
0

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

于 2016-05-20T19:05:36.373 回答
0

您不能,我尝试了不同的方法,也许使用新的 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 配置文件)的$yourls_reserved_URL数组中添加“ w

于 2018-06-08T00:09:48.840 回答