2011-12-15 3 views
1

私はmysite.comというサイトを持っています。これはWordPressサイトです。htaccess rewriting user pretty queryを実行するURL

私はすでにの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/で入力することができますが、それはacutallyクエリを行うが、/ブログ/ a-ブログタイプ/

私はここで多くの同様の答えを見てきましたが、ほとんどはそれが赤クエリから、私が欲しくないかなりのURLに向かいます。かなりのURLは、クエリを実行していないので、404エラーにつながるからです。

ありがとうございました。

答えて

1

この書き換えルールのURLはいずれも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] 

EDIT:だからここはあなたの設定が今どのように見えるかです:

<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

+0

あなたは同じものに入れることができます。あなたがindex.phpルールの前に置く限り、それはうまくいくはずです。 (だからあなたの例では "RewriteBase"の直後に置いておきます)。私は例を含めるために私の答えを更新しました。 –

+0

助けていただきありがとうございますが、まだ動作していないようです。私がRewriteRule^blogs $ www.google.com [nc、l]のようなテストをしたらgoogle.comにリダイレクトする必要がありますか? – HickTrick