2017-12-21 9 views
0

URLを再フォーマットする必要があります。 example.com/?article_category=lifestyle私はこれをexample.com/lifestyleにフォーマットします。しかし、私が.htaccessファイルでそれを再フォーマットしようとすると、うまくいきません。私の.htaccessファイルは私のファイルと同じディレクトリにあります。ファイル名はindex.phpです。URLを書き換えてクエリ文字列を削除します

ここで私が提案した書き換えルールです:

RewriteRule ^([\w-]+)/?$ index.php?article_category=$1 [QSA,L] 

が、これは動作しない理由を私は知りません。私は間違って何をしていますか?

答えて

1

便利なドキュメント:RewriteCond Directive & RewriteRule Directive

RewriteCond %{QUERY_STRING} article_category=([a-z]+) 
RewriteRule ^/?$ /%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z]+) index.php?article_category=$1 [QSA,L] 

1行目:article_category=([a-z]+)を含むクエリ文字列、article_category=lifestyleは2行目

にマッチしたかどうかのチェック:URLはexample.comexample.com/であれば、/lifestyleに恒久的にリダイレクトし、%1 RewriteCondの逆参照であり、パターンのグループ化された部分(括弧内は([a-z]+)

行目3月4日:URLは通常のファイルとディレクトリ

5行目ではない場合:URLはアルファベットで始まっている場合、index.php?article_category=$1

+0

にURLを書き換える。これは、作業を行いますが、私は例を行います。 com/lifestyleは私を404にリダイレクトします。example.com/index.php?article_category=lifestyleが動作すればindex.phpファイルを読み込みません。example.com/lifestyleをインデックスから作成するにはどうすればいいですか? PHP? – Bytes

+0

また、index.php/lifestyleでも動作しますが、example.com/lifestyle – Bytes

+0

を編集したばかりでなく、クエリ文字列を取り除いてリダイレクトしてURLを 'index.php? article_category = ' – Ben

関連する問題