2012-03-06 12 views
0

私は.htaccessに新しく、私はそれを私のためにURLをきれいにするために得るいくつかの問題を抱えているようです。.htaccess 3つ以上のparamersを持つURLを清掃する

私はsite.com/articlesのように正常に動作する最初の変数を取得することができています

site.com?p=article&id=3&read=article title 

を持っています。しかし、私がさらに進もうとすると、サーバーはそれを見つけることができないと言っています。私はいくつかの方法を試していませんが、どちらも機能していないようです。

RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1 

上記の本は

を働いている私は、最後の2が動作していない

RewriteRule ^([a-zA-Z0-9-z\-]+)(/([a-zA-Z0-9-z\-]+))?/?$ index.php?p=$1&i=$2 

RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/?$ index.php?p=$1&i=$2&read=$3 

を試してみました。助けてください。ありがとう

答えて

0

このようなことを試してみましょうか?

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?p=$1&id=$2&read=$3 [L] 
+0

やあ、助けに感謝します。記事のタイトルにスペースがあれば、読んだ方法に影響を与えるかどうかは分かりますか? &read = blah blah blah ...ありがとうございます。 – blackStar

0

%{QUERY_STRING}はあなたが探しているものです。

これは私が似たような状況のために使用するものです。

RewriteRule ^/(.*) /index.php?r=/$1&%{QUERY_STRING} [L] 
+0

こんにちは、ありがとうございました。記事のタイトルにスペースがあれば、読んだ方法に影響を与えるかどうかは分かりますか?つまり、&read = blah blah blah ...ありがとう – blackStar

+0

空白をURLに使用しないことが推奨されている場合は、スペースがエンコードされ、ブラウザに%20として表示されます。おそらくハイフンで置き換えられます可能なら。私のWebブラウザのURLを見て、stackoverflowは空白をハイフンに置き換えます。 –

+0

ああ、そう、PHPでstr_replaceのようなものを使用しますか?私は文字列のあなたのrがスクリプトの右側にpを表していると仮定していますか? – blackStar

関連する問題