Рабочие варианты mod_rewrite

В связи с ростом затрат в sape на продвижение своих и клиентских проектов, при общем тренде падения дохода, пришлось озадачиться наращиванием числа пузатых дропов для маломальского наращивания операционной суммы. Восстанавливал я их, естественно, из вебархива в помощью сервиса R-TOOLS и Dreamweaver.

Тут надо заметить, что весь этот процесс усложняется тем, что в последний ап PR гуглеводы что то там разломали и пыр перестал восстанавливаться и растекаться в междуапье, т.ч приходится полностью восстанавливать структуру сайта. И зачастую она сильно оставляет желать лучшего, т.ч приходилось осваивать или терзать форумы на предмет работы апачевского mod_rewrite и правильный строчек в файле .htaccess

Поскольку синтаксис mod_rewrite одно из многих скриптований, которые вызывают у меня адскую попаболь, то каждый отдельный случай ввергал меня в пучину безумия, т.ч. по итогам терзаний мне запилили PHP’шный скриптик, который нормально интерпретирует обычные HTML файлики в URL’ы с  querry запросами.

Но у меня осталось несколько рабочих примеров сантаксиса mod_rewrite для файла контроля доступа .htaccess которые, возможно, смогут избавить кого нить от мигрени.

1. Сайт выводится разделами, то есть файл about.html соответствует урлу site.ru/about , что можно реализовать кучей соответствующих подпапок с индексными файлами, а можно переписывать урл, отбрасывая расширение файла html. В моем случае это еще и осложнялось тем, что урлы были невообразимо длинными

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Za-z0-9–_]{3,100}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://site.ru/$1 [R=301,L]

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

RewriteEngine  on
RewriteBase     /
RewriteRule     ^(.*)\.html$  $1.php [R=301,L]

3. Урл  вида nz.example.html-en_type=1.htm надо было переписать в querry запрос вида nz.example.html?en_type=1

RewriteEngine On
RewriteRule nz\.example\.html-en_type=1\.htm nz.example.html?en_type=1  [R=301,L]
RewriteCond %{QUERY_STRING} ^en_type=1$
RewriteRule nz\.example\.html  nz.example.html-en_type=1.htm [L]

4. При восстановлении DLE сайта надо было имевшиеся html файлы представить как запросы к индексному файлу index.php, которого к тому же физически не было, в виде  index.php?newsid=1001
Переименовав их в нумерацию соответствующую значению newsid перезапись осуществлялась путем

RewriteEngine on
RewriteRule ^([0-9]+)\.html$ index.php?newsid=$1 [L,QSA]

Оставить комментарий