У меня есть правила перезаписи ниже в моем .htaccess
файл в корневом каталоге:.htaccess: Redirect слешей
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
.
Проблема заключается в том, что приведенные ниже ссылки не работают:
http://example.com/data1 # Not Working (Page Not Found)
http://example.com/data1/data2/ # Not Working (Page Not Found)
Но эти адреса работают:
http://example.com/data1/ # Works -> category=data1
http://example.com/data1/data2 # Works -> category=data1 & product=data2
Как я могу перенаправить первые два адреса на второй?
И/ИЛИ
ли что-то, что все URL-адреса будут перенаправлять на не-лидирующий слэш один. Таким образом, URL-адреса ниже:
http://example.com/data1/
http://example.com/data1/data2/
являются перенаправлять на них:
http://example.com/data1
http://example.com/data1/data2
Спасибо за ответ. Первый работает, но я не мог заставить второго работать. Не могли бы вы предоставить полный контент .htaccess, который правильно перенаправляет это перенаправление? Поэтому у меня не будет повторяющегося содержимого, и оба URL-адреса будут перенаправлены на не-трейлинг-косую черту. – Natasha
Если вы хотите избежать дублирования контента, вы должны сначала сделать перенаправление. Но тогда вам больше не понадобится конечная дополнительная слэш. См. Переработанный ответ. –
Спасибо за описание и ответ. – Natasha