2016-07-05 12 views
1

このタイトルには数多くの質問があり、すべて試しました。私は何をしようとしていることURLの最後に末尾のスラッシュを削除してください

localhost/site/tours/picnics 

localhost/site/tours/picnics/ 

をリダイレクトですが、私が試したすべてのコード、(例えば、この1)

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

は用localhost/picnicsに私をリダイレクトします何らかの理由で。なぜそれが起こっているのか分かりません。私もRewriteBase /site/を試しましたが、それは何の違いもありませんでした。誰かがこのコードの問題を指摘できますか?

編集:はここに私の完全なのhtaccessファイル

RewriteEngine On 
#RewriteBase /site/ 
RewriteRule ^destinations/(.*)$ destinations.php?destId=$1 [NC,L] 
#RewriteRule ^tours/? tour-listing.php [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

RewriteRule ^tours/?(.*)$ tour-listing.php?cat=$1 [NC,L] 
RewriteRule ^tour/([0-9a-zA-Z]+)$ tour.php?id=$1 [NC,L] 
RewriteRule ^hotel/([0-9a-zA-Z]+)$ hotel-details.php?id=$1 [NC,L] 
+0

In localhost/site/ – VeeK

答えて

1
はこれにあなたのルールを変更し

です:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] 
RewriteRule /$ /%1 [R=301,L,NE] 

$1は、あなたの現在のディレクトリからの相対値をキャプチャしますが%1%{THE_REQUEST}ことからキャプチャされていますオリジナルの完全なREQUEST URLを持っています。

+0

このルールを 'RewriteBase'行のすぐ下に残しておいてください。 – anubhava

+0

これは動作しますが、' localhost'の後に/ local /を追加し続けます。つまり、リンク 'localhost/site/tours/picnic/'それは' localhost // site/tours/picnic'になり、 'localhost /// site/tours/picnic /'と 'localhost //// site/tours /ピクニック/' – VeeK

+1

に戻ります。できます。どうもありがとうございます – VeeK

関連する問題