我知道.htaccess
URL重写有很多线程,但我的情况似乎有点不同,我已经尝试了很多,但它没有用。
我当前的网址: http://example.com/forest/trees/?type=perennial
我需要的是: http://example.com/forest/trees/perennial
我只需要从网址中删除?type=
。
编辑:网址可能在任何一点的字符串之间包含连字符-
(除了域名之外)。它也可以是dense-forest
或non-perennial
。
它是自定义代码和插件,因此无法对其进行修改。我只需要美化URL。
非常感谢任何帮助。
到目前为止我在.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
提前致谢。 :) 干杯!
答案 0 :(得分:1)
您可以使用此.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
等网址会在内部重定向到/forest/trees/?type=perennial
,然后重定向到Wordpress Dispatcher /index.php
。