【问题标题】:Wordpress > htaccess > custom search urlWordpress > htaccess > 自定义搜索网址
【发布时间】:2017-01-18 22:41:40
【问题描述】:

我正在为 mod_rewrite 苦苦挣扎,似乎无法修复它。我正在尝试做以下事情:

  1. 将默认 /?s=search-term 重定向到 zoeken/search-term 以获得用户友好的网址
  2. 内部重写/通过 zoeken/search-term -> search/search-term,所以 url 保持 zoeken/search-term

您能给我一些建议或建议吗?

.htaccess

# basics
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /project/project.nl/
</IfModule>

<IfModule mod_rewrite.c>
    #
    # ?s=term -> zoeken/term
    # wordpress has permalink search for searching
    #
    RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
    RewriteRule ^$ zoeken/%1/? [NC,R,L]

    # Internal rewrite zoeken -> search
    #
    RewriteRule project/project.nl/zoeken/(.+)$ search/$1/? [NC,PT,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]
</IfModule>
# END WordPress

【问题讨论】:

  • 如果我搜索some/test会发生什么?
  • 您的示例将被最后一个块(#begin wordpress - #end wordpress)拾取并由 index.php 处理

标签: wordpress .htaccess mod-rewrite url-rewriting


【解决方案1】:

问题在于前导斜杠并且没有在结果中添加 index.php 和 L 标志。 这是解决方案:

RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
RewriteRule ^$ search/%1? [NC,L,R]

# Rewrite localized search url -> search/term 
# 
RewriteRule ^zoeken/(.+)$ index.php/search/$1 [NC,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 2017-04-05
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多