0
私は、ルートディレクトリにある私の.htaccess
ファイルに以下の書き換えルールを持っている:.htaccessファイル:リダイレクト最後のスラッシュ
RewriteEngine On
# Exclude .css/.js/...
RewriteCond ${REQUEST_URI} ^.+$
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule^- [L]
# Rewrite Rule
RewriteRule ^([^/]*)/([^/]*)$ /index.php?category=$1&product=$2
だから、URL http://example.com/data1/data2
が私にcategory=data1
とproduct=data2
を与えます。
問題は、以下のURLが機能していないということです。
http://example.com/data1 # Not Working (Page Not Found)
http://example.com/data1/data2/ # Not Working (Page Not Found)
しかし、これらのURLが機能している:
http://example.com/data1/ # Works -> category=data1
http://example.com/data1/data2 # Works -> category=data1 & product=data2
どのように私は二番目に最初の2つのURLにリダイレクトことができますか?
OR/AND
すべてのURLが非末尾のスラッシュ1にリダイレクトされている何かをします。そこで、以下のURL:
http://example.com/data1/
http://example.com/data1/data2/
はこれらにリダイレクトされます。
http://example.com/data1
http://example.com/data1/data2
を与える答えをいただき、ありがとうございます。最初のものは動作しますが、私は2番目のものを動作させることができませんでした。それらのリダイレクトを正しく行う完全な.htaccessコンテンツを提供してください。だから、私は重複したコンテンツを持たず、両方のURLは非末尾のスラッシュ1にリダイレクトされます。 – Natasha
重複するコンテンツを避けたい場合は、まずリダイレクトを行う必要があります。しかし、その後、後続のオプションのスラッシュは必要ありません。リワークされた回答を参照してください。 –
あなたの説明と答えをありがとう。 – Natasha