нужна помощь по .htaccess (URL сайта)

V
На сайте с 13.06.2008
Offline
117
386

Приветствую.

Есть URL типа

http://site.ru/dir1/dir2/123

как с помощью .htaccess не брать в расчет в URLe путь dir1/dir2/ а взять 123 как параметр для index.php?

Понимаю, что за это mode_rewrite отвечает, но сколько читаю, пока никак не могу догнать как правильно сделать :(

DD
На сайте с 20.05.2010
Offline
54
#1

Попробуйте так:

RewriteEngine On
RewriteRule ^dir1/dir2/(.+)$ site.ru/$1 [R=301,L]

***

Альтернативный вариант - PHP:

$url = $_SERVER['REQUEST_URI'];
$url_a = explode("/", $url);
$url_a = array_reverse ($url_a);
$param = $url_a[0];
Изготовление сайтов (CMS Joomla, Wordpress) ( https://searchengines.guru/ru/forum/861077 )
V
На сайте с 13.06.2008
Offline
117
#2
DmitriyDonetsk:
Попробуйте так:

RewriteEngine On
RewriteRule ^dir1/dir2/(.+)$ site.ru/$1 [R=301,L]

404 ошибка

в логах

File does not exist: /www/sites/site.ru/dir1

DenysRoy
На сайте с 23.04.2012
Offline
89
#3

Если открывается станица http://site.ru/dir1/dir2/123 и она генерируется не index.php, то в index.php никак не передашь тот параметр. Быстрей всего только писать скрипт.

Хостинг в Европе за $2.95/месяц - 30 Дней Халявы! https://host-ua.com
V
На сайте с 13.06.2008
Offline
117
#4

Забыл добавить...

Что dir1 и dir2 - это не постоянные названия, коотрые меняются.

то есть получается, мне из пути нужно убрать две папки с разными названиями

SX
На сайте с 15.07.2008
Offline
79
#5

пробуте так

RewriteEngine On

RewriteRule ^(.*)/(.*)/(.*)$ /index.php?param=$3 [L]

если 123 - будет всегда цифры - то можно так..

RewriteEngine On

RewriteRule ^(.*)/(.*)/([0-9]+)$ /index.php?param=$3 [L]

siv1987
На сайте с 02.04.2009
Offline
427
#6

RewriteRule ^([^/]+)/([^/]+)/([^/.]+)$ /index.php?param=$3 [L]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий