我知道有许多用于.htaccess
URL重写的线程,但是我的情况似乎有些不同,我已经尝试了很多,但是没有用。
我当前的网址:http://example.com/forest/trees/?type=perennial
我需要的是:http://example.com/forest/trees/perennial
我只需要从URL中删除?type=
。
编辑:URL可能在任意点(课程的域名除外)之间的字符串之间包含连字符-
。也可以是dense-forest
或non-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
。