2016-08-09 4 views
0

htaccessファイルの書き換えルールに問題があります。助けてください。htaccess書き換えルールが機能しません

これが私の現在のhtaccessファイルである

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /product-project/ 
RewriteRule . index.php [L] 
</IfModule> 

今、私はにリダイレクトする必要があり、このような「製品/カテゴリ/ ID」と書き換えルールを作成したい「製品/プロファイル?PROFILE_ID = ID」。このため私は何らかの方法で問題なく動作しています。

RewriteRule ^product/.*/(.*)$ product/profile?profile_id=$1 [L,R] 

第1の問題→正しくリダイレ​​クトされますが、URLも変更されます。 idを10として使用すると、 "product/category/10"のままになりますが、これを使用すると正しくリダイレ​​クトされますが、URLは "product/profile?profile_id = 10"に変更されます。私は[L、R]の代わりに[L、P]を使用するためにどこかを読んでいますが、それはサーバーエラーとして与えています。

2番目の問題 - > "product/id"などの新しい書き換えルールを作成して、 "product/profile?profile_id = id"にリダイレクトする必要があります。 >また、「製品/にリダイレクトする必要があり、私はまた、「/ ID」などの新しい書き換えルールを作成することができます - このために私は今、これはサーバーエラーに

第三の問題を示す&を動作していない

RewriteRule ^product/(.*)$ product/profile?profile_id=$1 [L,R] 

を使用していましたprofile?profile_id = id "となります。これは可能ですか?

第4問題 - 「/ id1/id2」などの新しい書き換えルールを作成して、「product/profile?profile_id = id1 & serial_id = id2」にリダイレクトすることもできますか。これは可能ですか?

お時間をいただきありがとうございます。

答えて

1

はあなたがチェックしてください何をしたい、この..ですそれを使用してください。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3 
2のIDのための

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/$2?profile_id=$3&id=$4 
1

Options All -Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

ない私はローカルホスト/製品・プロジェクト/製品を入力しworking..When/10 - ?>それは/製品・プロジェクト/製品/プロファイルをlocalhostにリダイレクトする必要がありますPROFILE_ID = 10。 &localhost/product-project/10と入力すると、localhost/product-project/product/profileにリダイレクトする必要がありますか?profile_id = 10 –

関連する問題