|
|
03.08.2007, 11:43
|
|
MAG
Зарегистрирован: 2007-08-03
Сообщений: 4
|
Ситуация такова: имеется ссылка вида http://localhost/shop/?brand=brand_name&page=page_number
необходимо привести её к ЧПУ вида http://localhost/shop/brand_name/page_number/
Ввел правило RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)/?$ ?n_brand=$1&page=$2
Желаемого результата это не дало: NetCat редиректит на страницу с ошибкой "Страница не найдена".
Подскажите пожалуйста, как надо изменить правило или произвести другие действия, чтобы при нажатии на ЧПУ выводилась необходимая страница и в адресной строке отображалась человеческая ссылка?
P.S. Кто не знает, ЧПУ - Человекопонятный URL. Но всякий случай, содержимое .htaccess
DirectoryIndex index.php
AddDefaultCharset windows-1251
ErrorDocument 404 /netcat/require/e404.php
Options -Indexes
Options +FollowSymLinks
<IfModule mod_php4.c>
php_flag magic_quotes_gpc on
php_flag error_reporting off
php_value arg_separator.output "&"
</IfModule>
<IfModule mod_php5.c>
php_flag magic_quotes_gpc on
php_flag error_reporting off
php_value arg_separator.output "&"
</IfModule>
php_flag display_errors on
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-z0-9-]+)_([0-9]+).html$ ?n_brand=$1&page=$2
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA]
RewriteRule ^mypict.gif mypict0.gif
</ifModule>
|
|
|
03.08.2007, 12:09
|
|
MAG
Зарегистрирован: 2007-08-03
Сообщений: 4
|
Мда, почему нельзя редактировать сообщения, как бы не изменял текст, всё время выводится сообщение "Текст дублируется"
В предыдущем посте случайно указал старую версию .htaccess, вот текущая:
DirectoryIndex index.php
AddDefaultCharset windows-1251
ErrorDocument 404 /netcat/require/e404.php
Options -Indexes
Options +FollowSymLinks
<IfModule mod_php4.c>
php_flag magic_quotes_gpc on
php_flag error_reporting off
php_value arg_separator.output "&"
</IfModule>
<IfModule mod_php5.c>
php_flag magic_quotes_gpc on
php_flag error_reporting off
php_value arg_separator.output "&"
</IfModule>
php_flag display_errors on
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)/$ ?n_brand=$1&page=$2
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA]
RewriteRule ^mypict.gif mypict0.gif
</ifModule>
|
|
|
03.08.2007, 13:45
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
без редактирования ядра такого сделать нельзя, к сожалению (необходимо в 2-3 местах подправить переменную, содержащую URL, потому что она модифицируется в процессе обработки).
|
|
|
03.08.2007, 14:14
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Я такое делал без mode_rewrite. Просто переписал движок в нужных местах. В шаблоне в полях есть такое поле "формат", так вот если там указываешь определенный тип и ставишь кол-во возможных параметров, по которым должен идти поиск - то получаю ЧПУ только немного отличный от Вашего, а-ля "http://www.domen.ru/catalog/12-23-456-new-m/" , в общем, все передаваемые параметры перечисляются через "-"
Но, в любом случае, Вам надо переписывать движок, ну или подумать - "а нафига мне такие ЧПУ?"
После установки обновлений неткета на переписаный движок - все переписки придется делать заново.
Temet nosce...
|
|
|
03.08.2007, 14:51
|
|
MAG
Зарегистрирован: 2007-08-03
Сообщений: 4
|
Спасибо за ответы. Модификация движка исключена, буду переписывать шаблон для тотальной совместимости с NetCat...
|
|
|
22.08.2007, 11:41
|
|
Гость
Гость
|
RewriteRule ^([^/]*)/([^/]*).html$ /shop/?brand=$1&page=$2 [L]
Будет переделывать так
Из этого: http://localhost/shop/?brand=brand_name&page=page_number
В это: http://localhost/brand_name/page_number.html
Или так
RewriteRule ^([^-]*)-([^-]*).html$ /shop/?brand=$1&page=$2 [L]
Тогда в итоге вообще будет одна страничка после имени домена
The rewritten URL: http://localhost/brand_name-page_number.html
|