2011-12-15 68 views
1

说我有一个网站mysite.com,这是一个WordPress的网站。htaccess重写用户漂亮的网址来执行查询

我已经有以下重写规则删除的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-博客类型/

我已经看过很多类似的答案在这里,但大多数似乎使它只是红色从查询中获得了相关信息,以及我不想要的漂亮url,因为漂亮的url只会导致404错误,因为它不会执行查询。

感谢您的帮助。

回答

1

此重写规则将取任何mysite.com/blogs/a-blog-type/ URL并将其重写为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> 
+0

现在做我把这个里面?或者在我已经拥有的那个之后再做? – HickTrick 2011-12-15 19:29:20