2016-12-15 70 views
0

我正在努力与mod_rewrite,似乎无法解决它。我试着做以下事情:Wordpress> htaccess>自定义搜索网址

  1. 重定向默认/ S = 搜索项到zoeken/搜索项对用户友好的URL
  2. 内部重写/ passtrough zoeken/搜索-term - >搜索/ 搜索项,所以网址保持zoeken /搜索项

你能不能给我一些指针或建议吗?

的.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 
+0

应该发生什么? – Gerrit0

+0

您的示例将被最后一个块(#begin wordpress - #end wordpress)拾取并由index.php处理 – Peer

回答

0

问题是在领先的斜杠,而不是增加导致的index.php和L标志。 这里是解决方案:如果我搜索`一些/ test`

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]