Как изменить URL? Htaccess - PullRequest
1 голос
/ 28 ноября 2011

Что у меня есть

newsy/czytaj/items/odbierz-250zl-na-reklame.html

Это то, что я хотел бы

newsy/odbierz-250zl-na-reklame.html

Как это сделать с mod-rewrite? Я не понимаю RewriteRule.

Мой .htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
RewriteRule .* - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*\.html$ index.php [L]

Ответы [ 2 ]

6 голосов
/ 28 ноября 2011
RewriteEngine on
RewriteRule ^newsy/([^\./]+)\.html /newsy/czytaj/items/$1.html [L]

Это перезапишет все, что начинается с newsy и добавит / czytaj / items между ним и html-файлом.

1 голос
/ 28 ноября 2011

В принципе, вы просто создаете соответствующее правило перезаписи:

RewriteRule ^newsy/czytaj/items/(.+) /newsy/$1 [L]

Крайне важно не опускать флаг [L]. В противном случае ваш движок перезаписи может застрять в бесконечной петле. Также в начале файла .htaccess не забудьте включить mod_rewrite с:

RewriteEngine On

Для получения дополнительной помощи по mod_rewrite, я рекомендую проверить mod_rewrite-cheatsheet . Полное руководство по перезаписи URl см. На соответствующей странице документации Apache 2.0 .

...