Эта тема на forum.dklab.ru


MadByte: Структура сайта
Задача сделать структуру site.ru/somepage_123.html, но, так, чтобы реально был некий index.php которому передавалась бы URI somepage_123.html. Если кто знает, буду признателен.
Николай Павлюк:
Я вижу 2 варианта:
1. Делать реврайт

RewriteEngine on
RewriteBase /
RewriteRule ^(.+\.html)$ index.php?uri=$1 [L]


2. Это повесить свой обработчик на 404 ошибку

ErrorDocument 404 /path/to/script/index.php

и там уже обрабатывать переменную $_SERVER['REQUEST_URI']
Миша Спларов:
Мы используем вариант:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^.*$ index.php [L]
В скрипте:
$url = parse_url( $_SERVER[ 'REQUEST_URI' ] );
$url = $url[ 'path' ];
$url = preg_replace( '/^' . preg_quote( 'http://example.com/', '/' ) . '/', '', $url );
$url = trim( $url, '/' );
$url = explode( '/', $url );
foreach( $url as $k => $v ) {
if ( empty( $v ) ) {
unset( $url[ $k ] );
}
}
В вашем случае на выходе будет массив вида:
array(
0 => 'somepage_123.html',
);
Извиняюсь за готовое решение, но, думаю, в данном случае оно уместно :-)
Жека:
Вот сам этим занимаюсь какраз советую Вам делать по принцыпу mod_rewrite очень удобный способ, и можете сделать много всего, советую почитать на форуме статьи по ЧПУ.

Эта тема на forum.dklab.ru