我有一个站点和一个子域,例如:
http://www.example.com
http://store.example.com
在我的托管中,子域存储实际上是根站点上的一个文件夹。
在主站点上,我想进行永久链接重写,以删除永久链接中的日期,但不在商店中。mysite子域。我使用Yoast的重定向工具获取htaccess代码,即:
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://www.example.com/$4
这适用于根,但也适用于子域。我尝试仅在根站点上使用此htaccess规则:
RewriteCond %{HTTP_HOST} ^www\\.example\\.com$
RewriteRule ^([0-9]{4})\\/([0-9]{2})\\/([0-9]{2})\\/(.*) \\/$4 [R=301,NC,L]
但现在重定向根本不起作用。我已经搜索了所有我能找到的东西,但找不到像这样的特定用例。有没有htaccess方面的专家能帮我一把,让我知道我的代码出了什么问题?谢谢
最合适的回答,由SO网友:Chris Klongpayabal 整理而成
我找到了自己的答案,所以我把它贴在这里,这样如果其他人遇到同样的问题,他们可以看到我做了什么。
我的问题是基本Wordpress重定向代码:
# 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
位于htaccess文件的顶部,因此它是在任何重定向之前首先启动的。当我把它移到底部时,重定向又开始工作了。
因此,如果要使用rewritecond和rewriterule,它们需要在Wordpress rewritecond和rewriterule之前。