我知道有许多用于.htaccess URL重写的线程,但是我的情况似乎有些不同,我已经尝试了很多,但是没有用。

我当前的网址:http://example.com/forest/trees/?type=perennial

我需要的是:http://example.com/forest/trees/perennial

我只需要从URL中删除?type=

编辑:URL可能在任意点(课程的域名除外)之间的字符串之间包含连字符-。也可以是dense-forestnon-perennial

这是一个自定义代码和插件,因此无法对其进行修改。我只需要美化网址。

任何帮助将不胜感激。



到目前为止我在.htaccess中尝试过的内容:

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /forest\/trees\/\?type=([^&]+)
RewriteRule ^ \/forest\/trees\/%2\/? [L,R=301]




RewriteRule ^\/forest\/trees\/([^/]*)?  /forest/trees/?type=$1 [L]




我当前的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


提前致谢。 :)
干杯!

最佳答案

您可以使用以下.htaccess文件:

# BEGIN WordPress
RewriteEngine On
RewriteBase /

RewriteRule ^forest/trees/([^/]+)$ /forest/trees/?type=$1

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress


现在,像http://example.com/forest/trees/perennial这样的URL将在内部重定向到/forest/trees/?type=perennial,然后再重定向到Wordpress Dispatcher /index.php

10-01 15:51