2017-06-13 8 views
1

まず、この質問がStack Overflowに多く現れることがわかります。私は他のポストの多くから答えを読んでいますが、答えのどれも私の問題を解決していません。私はこの時点で私が持っているものをあなたに示します。ブログの.htaccess書き換えが機能していない

私が書いたカスタムブログがあり、すべての記事がdbに保存されています。データベースには、記事の名前にハイフンを含むURLフィールドがあります。例:リストの記事ページに私の初のポスト

、続きを読む]ボタンを、私はこの方法でページにリンクしています

<a href="post.php?id=my-fist-post">read more</a>

を、あなたは続きを読む]ボタンをクリックすると、このページに移動します:https://example.com/post.php?id=my-first-post。ここで

https://example.com/post/my-first-postは、これまでの私の書き換えルールである:私は何をしたいのは、このようなURLで現在

Options +FollowSymLinks -MultiViews -Indexes 
irectoryIndex index.php index.html index.htm 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9-/]+)/?$ /post.php?id=$1 [L] 

、それを私の.htaccessに、私は私のリンクをクリックしたとき、それはありません何もない。あなたの助けを前もってありがとう!

答えて

1

あなたは正しい経路にあります。 URLで渡す文字列についてクエリを実行してみてください。これに似た

何か:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^id=([^&\s]+)$ 
RewriteRule ^(?:post\.php|)$ /%1? [R=301,L] 

RewriteCond %{QUERY_STRING} ^post=([^&\s]+)&id=([^&\s]+)$ 
RewriteRule ^(?:post\.php|)$ /%1/%2? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^\s\/]+)/?$ post.php?id=$1&r [L,QSA] 

それはあなたを取得する場所私を知ってみましょう。

関連する問題