WordPress和YourLS如何在根级别和平共处?

时间:2016-03-25 16:14:08

标签: wordpress .htaccess redirect yourls

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

我还想使用Wordpress为大部分面向消费者的网站提供支持,网址为:sly.pe.这个想法是我希望用户使用Wordpress和OneAll社交注册插件注册该网站。一旦通过身份验证,他们就会登录到YourLS和Wordpress,并被重定向到像使用Wordpress作为网站的sly.pe/home这样的网址,但是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

谢谢,克里斯

5 个答案:

答案 0 :(得分:0)

简单的答案是:你做不到。 WordPress和YOURLS(请,YOURLS,而不是YourLS)需要处理服务器请求以返回预期结果(例如,在请求fi=open(inputFile,"r") for line in fi: #go to last line and print it 时,每个应用程序都需要检查http://sho.rt/blah是否为其管理的内容)

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

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

  • blah是WP文章,但不是YOURLS短网址
  • blah是YOURLS短网址,但不是WP文章
  • blah既不是WP文章,也不是YOURLS短网址
  • 可选择决定当blah同时是WP文章和YOURLS短网址时要做什么

您的代码还需要:

  • 阻止WP创建一个已经是YOURLS短网址的“slug”
  • 阻止YOURLS创建已与WP slug匹配的短网址

您需要在WP区域和YOURLS区域中都有此代码。

底线:要处理的大量边缘案例。在某些情况下可能起作用的可能在其他情况下,在您身边或与他人一起工作。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

将您的网站设置在root下的文件夹中,其名称为&#34; w &#34;,这意味着它将在&#34; sho.rt / w &#34;

然后使用此.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

如果用户没有通过网址中的任何子文件夹,这将为您提供仍然使用 sho.rt 作为您网站地址的选项,但如果他们这样做,则会检入如果没有找到,请首先访问你的文件夹。

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

答案 3 :(得分:0)

I was able to get YOURLS to work with WordPress. Here's how I did it...

I've placed YOURLS in niemannross.com/links - so for me, a redirect looks like http://niemannross.com/link/rlunchlessons

Install the Redirection plugin by John Godley in your copy of WordPress.

Look in Wordpress:Admin:Tools:Redirection. Across the top are several tabs. You should see Redirects | Groups | Logs | 404s | Import/Export | Options | Support.

Choose Redirects

Select Add New Redirection

Source URL: /link/.* - Select Regex.

Target URL: /link/yourls-loader.php

Group: Whatever makes sense in your setup. I've chosen wordpress:redirections

This works for my installation.

答案 4 :(得分:0)

WordPress和YOURLS CAN 在Apache和Nginx的根级和平共处!

这是我的第一篇文章,请保持友善。

在为当前项目做一些研究时,我遇到了这个问题,重构了YOURLS HTTP(S)代码。我希望在2019年1月(下个月)发布此补丁(PR和插件)。我现在正在寻找下一个YOURLS项目。我当时在考虑YOURLS MultiSite,但也许首先我应该在...上做一个页面。

WordPress和YOURLS如何在根级和平共处!

这是人们仍然想要的东西吗?

大约两年前,我基于WordPress .htaccess的简单复制/粘贴.htaccess片段解决了此问题,该片段用于在MultiSite /子域中运行WordPress。 MultiSite /子域也可以作为单个站点运行。

要清楚...我使用的是标准安装的YOURLS,而标准安装的WordPress配置为MultiSite / domain。 YOURLS的工作方式与YOURLS和WordPress的相同。即使使用了YOURLS的任何核心插件,也没有使用标准的WordPress选项,都没有特殊的考虑。

如果有人愿意,我将进入我的档案库并发布操作方法。抱歉,由于我将所有这些站点都转换为Linode和Nginx,所以今天不能发布。在圣诞节期间,我在不同的地方,但是在新年过后提醒我,我会拿来贴出来。如果您着急的话,.htaccss会在一段时间前发布在YOURLS Github上的某个地方。

WordPress和YOURLS可以在Apache和Nginx的根目录下和平共处!

@Ozh “简单的答案是:您不能。” 我对Ozh表示高度敬意,YOURLS是一个很棒的程序,Ozh是一个聪明的人。但是,已经做完了,我不同意他做不到的事情。

@WhGandalf “您不能,我尝试了不同的方式...” 我认为他在说的是与Ozh相同的话... [我尝试过,没有用,所以你做不到!] 但是随后出现了像我这样的傻瓜天才,他们缺乏功能固定,只能这样做。如果有人想知道我将如何高兴地向您展示!