Jump to content
  • 0

Простейший чпу


rus
 Share

Question

Добрый день!

Есть страница вида:

http://site.ru/articles.php?page=1

Пытаюсь привести ее к такому виду:

http://site.ru/articles/page1.html

Делаю таким образом:

RewriteRule ^articles/page([0-9]*)\.html$ /articles.php?page=$1

Не реагирует :) в чем проблема?

В самом htaccess есть еще такие строки для преобразования php в html:

RewriteEngine on 
RewriteBase /

RewriteRule ^articles.html$ index.php

Но разве это может как-то повлиять?

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

Не реагирует никак..., вот содержание .htaccess:

RewriteEngine on
RewriteBase /

RewriteRule ^index.html$ index.php
RewriteRule ^specials.html$ specials.php
RewriteRule ^guest.html$ guest.php
RewriteRule ^contakts.html$ contakts.php
RewriteRule ^programms.html$ programms.php
RewriteRule ^spravka.html$ spravka.php
RewriteRule ^lessons.html$ lessons.php
RewriteRule ^articles.html$ articles.php

// И так пробовал RewriteRule ^articles/page(\d+).html$ /articles.php?page=$1 [L]
// И так тоже RewriteRule ^/articles/page([0-9]*)\.html$ /articles.php?page=$1

UPD: ссылка формируется используя глобальную переменную PHP_SELF:

<a '.$style.' href='.$_SERVER['PHP_SELF'].'?page='.$i.'>'.$i.'</a>

Edited by rus
Link to comment
Share on other sites

  • 0
Вот это

RewriteRule ^articles/page(\d+).html$ /articles.php?page=$1 [L]

перед

вот этим

RewriteRule ^index.html$ index.php

а не после

Пробовал и так - нет реакции никакой. :)

ребят, я задам один глупейший вопрос, но ModRewrite на сервере вообще подключен?

Ну так файл из php расширения переименовывается в html - работает.

UPD: строчка раскомментирована в httpd.conf: LoadModule rewrite_module modules/mod_rewrite.so

Edited by rus
Link to comment
Share on other sites

  • 0
Ну так файл из php расширения переименовывается в html - работает.

UPD: строчка раскомментирована в httpd.conf: LoadModule rewrite_module modules/mod_rewrite.so

во-во - то что ты написал в первой строчке - не модрерайт ни разу. а второй да

ну, тогда думайте, у меня лично всегда работало, а разбираться сейчас в регах не до того

Link to comment
Share on other sites

  • 0

Только что попробовал, вот это:

RewriteEngine on

RewriteBase /

RewriteRule ^index.html$ index.php

RewriteRule ^specials.html$ specials.php

RewriteRule ^guest.html$ guest.php

RewriteRule ^contakts.html$ contakts.php

RewriteRule ^programms.html$ programms.php

RewriteRule ^spravka.html$ spravka.php

RewriteRule ^lessons.html$ lessons.php

RewriteRule ^articles.html$ articles.php

RewriteRule ^articles/page(\d+).html$ /articles.php?page=$1 [L]

работает

Link to comment
Share on other sites

  • 0
Рестартани апач :)

Уже и рестартовал (несколько раз при чем), и менял разными комбинациями - вообще ничего не меняется. :)

Дмитрий [L] - за что отвечает? [R] - это насколько я знаю что бы при наведении на ссылку, в строке статуса отображался результат.

Link to comment
Share on other sites

  • 0

Читайте доки по "rewrite rule flags"

'redirect|R [=code]' (force redirect)

Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection. If no code is given a HTTP response of 302 (MOVED TEMPORARILY) is used. If you want to use other response codes in the range 300-400 just specify them as a number or use one of the following symbolic names: temp (default), permanent, seeother. Use it for rules which should canonicalize the URL and give it back to the client, e.g., translate ``/~'' into ``/u/'' or always append a slash to /u/user, etc.

'last|L' (last rule)

Stop the rewriting process here and don't apply any more rewriting rules. This corresponds to the Perl last command or the break command from the C language. Use this flag to prevent the currently rewritten URL from being rewritten further by following rules. For example, use it to rewrite the root-path URL ('/') to a real one, e.g., '/e/www/'.

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

Edited by LunatiK
Link to comment
Share on other sites

  • 0
А выведи phpinfo() и посмотри, есть ли там mod_rewrite

Ну да, все есть:

Loaded Modules

core mod_win32 mpm_winnt http_core mod_so mod_actions mod_alias mod_asis mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_imagemap mod_include mod_isapi mod_log_config mod_mime mod_negotiation mod_rewrite mod_setenvif mod_userdir mod_ssl mod_php5

Edited by rus
Link to comment
Share on other sites

  • 0

В конфиге апаче есть такая настройка.

Почитал, понял в чем дело.

<Directory "C:/Sites">

Options Indexes Includes

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<FilesMatch "^\.ht">

Order allow,deny

Deny from all

Satisfy All

</FilesMatch>

На работе тоже как-то сидели..фтыкали в чем дело.

Edited by rus_help_from_amd
Link to comment
Share on other sites

  • 0
В конфиге апаче есть такая настройка.

Почитал, понял в чем дело.

На работе тоже как-то сидели..фтыкали в чем дело.

AMD: спасибо конечно за участие, но че-то я не очень-то понял, можешь популярно объяснить на что это влияет и как это исправить?

У меня там есть похожие строки, но немного другие:

<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>

UPD: а, я наверное понял что имеешь ввиду, там в комментах есть такая запись:

The following lines prevent .htaccess and .htpasswd files from being

viewed by Web clients.

Запретить просмотр браузером файлы .htaccess и .htpasswd, но ведь .htaccess то работает, иначе файлы с расширением .php не превращались бы в .html.

Edited by rus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy