假设我有一个网站mysite.com,这是一个wordpress网站。
我已经有以下重写规则来删除index.php:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
如果我去mysite.com/?blog_type=a-blog-type,我会得到一个只包含该类型博客的正确页面
我想要的是,用户能够输入mysite.com/blogs/a-blog-type/并进行实际查询,但继续显示/ blogs / a-blog-type /
我在这里看了很多类似的答案,但大多数似乎都是这样,它只是从查询重定向到我不想要的漂亮网址,因为漂亮的网址只会导致404错误,因为它没有进行查询。
感谢您的帮助。
答案 0 :(得分:1)
此重写规则将使用任何mysite.com/blogs/a-blog-type/
网址并将其重写为mysite.com/?blog_type=a-blog-type
。因此,mysite.com/blogs/a-blog-type/
会显示给用户,但会加载mysite.com/?blog_type=a-blog-type
。
RewriteRule ^blogs/([^/]*)((/)?)$ ?blog_type=$1 [nc,l]
编辑:以下是配置现在的样子:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^blogs/([^/]*)((/)?)$ ?blog_type=$1 [nc,l]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>