繁体   English   中英

修改wordpress htaccess以将某些URL转发到子目录

[英]Modifying wordpress htaccess to forward certain urls to subdirectory

无论出于何种原因或我无法确定的其他原因,我的公司都决定将wordpress用于其网站之一。 他们要求我在同一个域上构建一个联属网络营销应用程序。 除以下两难之外,一切工作都很好:

wordpress安装在根目录中。 所有页面,视频,销售等均来自Wordpress页面。

会员应用程序位于子目录/ aff /中,而会员的页面位于mydomain.com/aff/index.php?aff=affiliateusername中

会员(及其潜在客户)应该只需输入www.mydomain.com/affiliateusername即可加载其页面,但我仍在努力了解如何翻译wordpress htaccess规则来做到这一点。

显然,进行此工作的最佳顺序是让wordpress首先确定是否有任何与网址词FIRST相匹配的博客/帖子/页面,如果找不到,则将所有其他内容重定向到www.mydomain.com/ AFF /的index.php?AFF =什么

这就是我最终想出的方法,该方法适用于索引页面和会员页面,但是没有正确加载除索引之外的任何wordpress页面。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(images|wp-admin|wp-content|wp-includes|go|compliance\.html)($|/) - [L]
#RewriteRule ^([^/].*)$ /aff/index.php?aff=$1 [R,L]
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

您可以告诉我,我试图从重写中排除某些目录,但是没有成功。 我已经通过Googling阅读了其他建议,将重定向规则放在wordpress块的前面,但是问题很少。 当我将此行放在#BEGIN WordPress行的前面时,我得到了一个无限循环的重定向循环,该循环不断转到/aff/index.php?aff=aff/index.php?...等(这是我使用的同一行对于不同的,无wordpress的域中的同一会员应用程序)

#RewriteRule ^([^/].*)$ http://www.mydomain.com/aff/index.php?aff=$1 [L]

我感觉好像缺少了非常明显的东西。 我应该只是设置wordpress将所有404重定向到/aff/index.php?aff=originalrequest吗? 我将如何去做?

提前致谢。

您使用了RewriteRule而不是RewriteCond 在WordPress规则之间添加它们肯定也会破坏您的博客。 将您的.htaccess代码更改为:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^([^/.]+)$ /aff/index.php?aff=$1 [R=301,QSA,L]

  RewriteRule ^index\.php$ - [L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

如果您希望URL保留为mydomain.com/affiliate删除[R]并仅使用[QSA,L]


我已经更新了上面的规则,以显示如何从会员重定向中排除路径。 下列

 RewriteCond %{REQUEST_URI} !^/blog\\b 

从重定向中排除所有指向/blog或其子目录/blog/sub/dirs URL。


如果存在根级别的.php页面(即使页面很少),则可以通过将规则更改为来更轻松地处理排除

 RewriteRule ^([^/.]+)$ /aff/index.php?aff=$1 [R=301,QSA,L] 

假设. 并且/永远不能以会员名称出现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM