Как совместить ЧПУ и перенаправление

Статус
В этой теме нельзя размещать новые ответы.

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
293
Написал ЧПУ для адреса
index.php?id=forma . преобразовал его в вид сайт/forma/
с помощью
Код:
RewriteEngine On
RewriteRule ^([^/]*)/$ /?id1=$1 [L]

Как теперь сделать, чтобы на мой сайт можно было зайти как по сайт/forma/ , так и по сайт/forma (отличие в последнем слеше)?
 
Написал ЧПУ для адреса
index.php?id=forma . преобразовал его в вид сайт/forma/
с помощью
RewriteEngine On
RewriteRule ^([^/]*)/$ /?id1=$1 [L]

Как теперь сделать, чтобы на мой сайт можно было зайти как по сайт/forma/ , так и по сайт/forma (отличие в последнем слеше)?

Код:
RewriteRule ^forma$ /index.php?id=forma [L]
RewriteRule ^forma/$ /index.php?id=forma [L]
 
Код:
RewriteRule ^forma$ /index.php?id=forma [L]
RewriteRule ^forma/$ /index.php?id=forma [L]

Забыл сказать что id=forma - это непостоянное значение.
forma - это изменямемое значение. Т.е. id=forma , id=ind, id=rewrite ?
 
Забыл сказать что id=forma - это непостоянное значение.
forma - это изменямемое значение. Т.е. id=forma , id=ind, id=rewrite ?
Пример. Danneo CMS
Код:
RewriteCond  %{REQUEST_URI}  !^/apanel(/)?$
RewriteCond  %{REQUEST_URI}  !^/forum(/)?$
RewriteCond  %{REQUEST_URI}  !^/setup(/)?$
RewriteRule ^([a-zA-Z0-9]+)(/)?$  index.php?dn=$1 [NC]
 
не нужно придумывать и изобретать велосипеды...
правило указанное в начеле поста верное, просто в хедере нужно будет указать хряфу. вот и все.
т.е.

<head>
<base href="http://Сайт.ru/">

и все будет воркать
как и со слешем, так и без оного.
 
впиши

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} ![^/]*\.[^/]*$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [NS,L,R=301]

автоматом будет подставлять завершающий слэш..
 
впиши
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} ![^/]*\.[^/]*$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [NS,L,R=301]
автоматом будет подставлять завершающий слэш..

А вот у меня задача - нужно ставить слэш, если идео обращение не к файлу, то есть не к *.php, *.css и так далее. И ни папки, ни файлы - не существуют в реале. поэтому вариант из мануала
Код:
RewriteEngine  on
RewriteBase    /~quux/
RewriteCond    %{REQUEST_FILENAME}  -d
RewriteRule    ^(.+[^/])$           $1/  [R]
не работает
 
А разве код BDSG не работает? По моему второе условие как раз и отсекает файлы (определяет по наличию точки в пути).
 
впиши

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} ![^/]*\.[^/]*$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [NS,L,R=301]

автоматом будет подставлять завершающий слэш..

Поставил - работает. Из плюсов могу сказать, что работает для любого количество поуровней. Понадобилось сделать 3 реврайта. В каждом указанное выше правило работало.
RewriteRule ^([^/]*)/$ /?ids1=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/$ /?ids1=$1&ids2=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /?ids1=$1&ids2=$2&ids3=$3 [L]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху