我正在尝试创建所有链接到主页的“仿”页面以及GET数据中的相关变量。例如:
http://example.com/img/IMGNAME/comment/5678/
提供以下数据: http://example.com/?image=IMGNAME&comms=5678
我的htaccess文件中有以下内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^img/([^/]+)/comment/([^/]+) /?image=$1&comms=$2 [L,NS]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
问题是我有一个帖子有一个IMGNAME的帖子(这就是我在主页上给出GET变量的帖子)。
当我手动输入http://example.com/?image=IMGNAME&comms=5678时,一切正常。
当我输入http://example.com/img/IMGNAME/comment/5678/
时我被重定向到http://example.com/category/IMGNAME/(网址更改并呈现single.php模板)
我假设index.php(或'/')然后被wordpress处理,其中它试图找到最接近变量内容的帖子,我把它和REDIRECTS交给帖子?
有谁知道如何在地址栏中输入url STAY并允许主页处理GET变量?
我是否需要创建基本index.php文件的不同版本,以使其不重定向/搜索类似命名的帖子?我仍然需要它来处理我的主题模板页面与wordpress标签等。
答案 0 :(得分:2)
我认为不是在.htaccess中重写你应该添加新的自定义重写规则wordpress方式。
function my_custom_rewrites(){
add_rewrite_rule(
'img/(.*)/comment/(.*)',
'index.php?image=$matches[1]&comms=$matches[2]',
'top' );
}
add_action( 'init', 'my_custom_rewrites' );
您还可以尝试在此处分享的提示http://docs.dev4press.com/tutorial/practical/debug-wordpress-rewrite-rules-matching/,这些提示可能有助于您了解哪个Rewrite规则与网址匹配以及为何呈现特定模板。
您的网址可能与Wordpress的其他重写规则模式相匹配。因此,在wordpress中注册自己的规则使您有机会在核心规则之前检查它,注意add_rewrite_rule的第三个参数,它表示&#39; top&#39;,这指定了相同的