RewriteEngine On и функция PHP - include

Статус
В этой теме нельзя размещать новые ответы.
в ссылке пробелов быть не может, поэтому пробел заменяется на код пробела, это браузер меняет, то же самое делает функция rawurlencode.
Можно использовать функцию urlencode тогда пробел заменяется на +
 
Ну до этого я дошел, а как сделать как в Википедии? Там Урлы вроде как экранированые, но отображаються как кирилица... И вместо пробелов там ставиться _ тоже интересно как добиться ))
 
надо некоторые спец символы убирать из ссылки как например делает википедия
PHP:
$wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+";

function buildSafeTitle( $name ) {
        global $wgLegalTitleChars;
        $x = preg_replace_callback(
            "/([^$wgLegalTitleChars]|~)/",
            array( $this, 'hexChar' ),
            $name );
        
        $test = Title::makeTitleSafe( NS_FILE, $x );
        if( is_null( $test ) || $test->getDBkey() !== $x ) {
            $this->log( "Unable to generate safe title from '$name', got '$x'" );
            return false;
        }
        
        return $x;
    }
это кирилицу отображает firefox, ещё поисковики тоже так делают, но на самом деле ссылка кодированая, а в htaccess можно создать ссылку с кирилицей только файл надо сохранить в utf-8 кодировке, например такая ссылка

#_http://superprograms.ru/programs/менеджеры_файлов.html
RewriteRule ^programs/менеджеры(.*)файлов\.html$ view_programs.php?subcategory=%EC%E5%ED%E5%E4%E6%E5%F0%FB%20%F4%E0%E9%EB%EE%E2&category=%E0%E4%EC%E8%ED%E8%F1%F2%F0%E8%F0%EE%E2%E0%ED%E8%E5&cat=administrating.php [QSA,L]

тут в ссылке между словами "менеджеры" и "файлов" может быть любой символ(ы), ну и так прописать правила в htaccess файле для каждой ссылки, или создать шаблоное одно правило для всех ссылок, которое перенаправляет на спец скрипт в котором будут анализироватся слова (менеджеры файлов и т.д.) и запускатся нужные страницы.

RewriteRule ^programs/(.*)\.html$ index.php?page=$1 [QSA,L]

и в index.php вначале берётся значение переменной page например

PHP:
if($_GET['page']=='менеджеры файлов'){
$subcategory='менеджеры файлов';
$category='администрирование';
$cat='administrating.php';
}
тут ещё
 
О вот это интересно ))
 
#_http://superprograms.ru/programs/менеджеры_файлов.html
RewriteRule ^programs/менеджеры(.*)файлов\.html$ view_programs.php?subcategory=%EC%E5%ED%E5%E4%E6%E5%F0%FB%20%F4%E0%E9%EB%EE%E2&category=%E0%E4%EC%E8%ED%E8%F1%F2%F0%E8%F0%EE%E2%E0%ED%E8%E5&cat=administrating.php [QSA,L]
тут в ссылке между словами "менеджеры" и "файлов" может быть любой символ(ы), ну и так прописать правила в htaccess файле для каждой ссылки, или создать шаблоное одно правило для всех ссылок, которое перенаправляет на спец скрипт в котором будут анализироватся слова (менеджеры файлов и т.д.) и запускатся нужные страницы.
RewriteRule ^programs/(.*)\.html$ index.php?page=$1 [QSA,L]
и в index.php вначале берётся значение переменной page например
PHP:
if($_GET['page']=='менеджеры файлов'){
$subcategory='менеджеры файлов';
$category='администрирование';
$cat='administrating.php';
}
Однако, если таких разделов много, каждый из них придется прописать в htaccess. Да и при добавлении, изменении его придется править. Это не очень удобно, хотя раз такого эффекта хочет человек, придется ему это проделать :)
На мой взгляд, все-таки кириллица в адресе - лишнее.
 
я тоже так подумал - и решил сделать на цифрах. Теперь благодаря вашим подсказкам - у меня получились вот такие красивые и опрятные URL:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
ит.п. ит.д.

RewriteEngine On крутая тема! :)

А есть возможность название программы подставлять вместо ID в URL? Там просто встречаються точки разные ит.п. и не знаю не будет ли проблем из за них :) Надо будет както эти точки экранировать или как?

Сори что туплю - всю ночь просидел за кодом :Р
 
я тоже так подумал - и решил сделать на цифрах. Теперь благодаря вашим подсказкам - у меня получились вот такие красивые и опрятные URL:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
ит.п. ит.д.
RewriteEngine On крутая тема! :)
А есть возможность название программы подставлять вместо ID в URL? Там просто встречаються точки разные ит.п. и не знаю не будет ли проблем из за них :) Надо будет както эти точки экранировать или как?
Сори что туплю - всю ночь просидел за кодом :Р
Когда я делал названия программ в адресках - заменял все левые символы: кириллицу переводил в транслит, служебные символы заменял на подчеркивания.
 
как кирилицу перевести в транслит? :) Есть определенная готовая функция или самому надо скрипт писать? ))
 
как кирилицу перевести в транслит? :) Есть определенная готовая функция или самому надо скрипт писать? ))
Я функцию сам писал, чтобы все варианты отследить, просто соответствие каждого символа кирилицы и строке в латинице, потом замена str_replace.
 
Я функцию сам писал, чтобы все варианты отследить, просто соответствие каждого символа кирилицы и строке в латинице, потом замена str_replace.

Ну а как отдельные символы вытягивать? )) дальше то я разберусь :) Мне просто интересно как из переменной по 1 букве вытаскивать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху