【发布时间】:2015-05-29 01:25:56
【问题描述】:
我有一个 wordpress 网站,例如。 http://www.domain.com/ 带有托管在 linux 服务器上的自定义主题并且工作正常。一些营销策略要求我区分 2 种 URL(它们将从广告中拍摄)并基于此将网站重定向到不同的链接。
例如:
如果 URL 包含 /xyz/ 即:
http://www.domain.com/xyz/category/post 我希望它被重定向到 一个中间页面,即:http://www.domain.com/intermediate.php 如果 网址不包含 /xyz/ 即:
http://www.domain.com/category/post 帖子应显示为 平常。
我发现这不能像在触发第一个钩子之前那样在 wordpress 代码中完成,处理 url 并抛出 404 页面。
我能做到这一点的唯一方法是修改 .htaccess 文件。
我找到了一段代码:
RewriteRule ^(.*)/xyz/(.*)$ http://www.domain.com/intermediate.php [L,R=301]
第二种方式是:
RewriteCond %{REQUEST_URI} /xyz/
RewriteRule .* http://www.domain.com/intermediate.php
我真的很困惑将它与 wordpress 创建的 htaccess 文件中的现有代码一起使用:
# 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
我尝试合并代码,即:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /domain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /domain/index.php [L]
RewriteCond %{REQUEST_URI} /xyz/
RewriteRule RewriteRule ^(.*)/xyz/(.*)$ http://domain.com/intermediate.php
</IfModule>
但一次只有一个有效,即:当重定向有效时,wordpress 帖子不会显示,反之亦然。 请告诉我一个更好的方法。
【问题讨论】:
标签: wordpress .htaccess redirect