Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопросы по htaccess

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: удалить нижнюю черту из ссылки
SindBAD
Отправлено: 11 Марта, 2012 - 17:20:39
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Всем привет!
Нужно сделать такой рерайт ссылок, чтобы, например, /cargo_refrigerator.html заменаялась на лету на /cargorefrigerator.html (таких ссылок много) и /st.petersburg.html на /stpetersburg.html (такая ссылка одна).
Подскажите, как это делается?
 
 Top
LIME
Отправлено: 11 Марта, 2012 - 17:31:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




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

(Отредактировано автором: 11 Марта, 2012 - 17:32:50)

 
 Top
SindBAD
Отправлено: 11 Марта, 2012 - 17:43:28
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Не вариант, необходимо решить задачу именно так, как она поставлена.

(Отредактировано автором: 11 Марта, 2012 - 17:45:56)

 
 Top
LIME
Отправлено: 11 Марта, 2012 - 17:56:52
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Цитата:
RewriteEngine on
RewriteRule (.*?)_(.*?).html $1$2.html [L]
вроде так
(Добавление)
ну а точку аналогично
(Добавление)
при этом если может быть "_" в пути перед именем файла надо чуть изменить регулярку
 
 Top
SindBAD
Отправлено: 11 Марта, 2012 - 18:38:00
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Что-то не выходит. На всякий случай весь htaccess:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ##
  3. # @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $
  4. # @package Joomla RE
  5. # @localized Авторские права (C) 2005 - 2011 Joom.Ru - Русский дом Joomla! Все права защищены.
  6. # @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
  7. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
  8. # Joomla! - свободное программное обеспечение.
  9. # Последнее изменение этого файла - 09.04.2011
  10. ##
  11.  
  12. #  Установка кодировки сайта по умолчанию. При необходимости, закомментируйте.
  13. #  Строка решает проблему с "крякозябрами" в редакторе TinyMCE и текста лицензии при установке
  14. #  на Денвере и некоторых серверах с жестко прописанной кодировкой. Это на 99,9% работающее решение.
  15. #  После переименования этого файла htaccess.txt в .htaccess проблема решится.
  16. #  Если проблема осталась - перечитайте предыдущее предложение (возможно неправильно переименовали).
  17.  
  18. AddDefaultCharset utf-8
  19.  
  20. #  Следующие строки - попытка исправить настройки PHP
  21. #  для полного соответствия системным требованиям Joomla.
  22. #  Раскомментируйте (символ комментария - #) нужные строки,
  23. #  если настройки вашего хоста не соответствуют рекомендациям
  24. #  системных требований Joomla.
  25. #  При возникновении 500 ошибки сервера, закомментируйте строку, вызывающую
  26. #  ошибку, или все строки с php_flag.
  27.  
  28. #  php_flag register_globals Off
  29. #  php_flag display_errors Off
  30. #  php_flag file_uploads On
  31. #  php_flag allow_url_fopen off
  32. #  php_flag magic_quotes_gpc On
  33. #  php_flag magic_quotes_runtime Off
  34.  
  35.  
  36. #  Пример явного указания каталога для записи сессий:
  37. #  Для Windows - c:/temp
  38. #  для UNIX  - /tmp
  39.  
  40. #  Указанный каталог должен физически существовать и быть доступен для записи
  41.  
  42. #  При необходимости, раскомментируйте строку ниже этой
  43. #  php_value session.save_path c:/temp
  44.  
  45. #####################################################
  46. #  ПРОЧТИТЕ ПОЛНОСТЬЮ, ЕСЛИ БУДЕТЕ ИСПОЛЬЗОВАТЬ ЭТОТ ФАЙЛ
  47. #
  48. # Строка ниже этого раздела: 'Options +FollowSymLinks' может вызвать проблему
  49. # при некоторых конфигурациях сервера. Она необходима для использования модуля
  50. # Apache mod_rewrite, но может быть уже настроена администратором вашего
  51. # сервера и изменение этого параметра в .htaccess может быть запрещено.
  52. # Если эта директива вызывает ошибку сервера, то закомментируйте строку
  53. # (добавьте символ # в начало строки), перезагрузите в браузере сайт и
  54. # протестируйте работу SEF-ссылок. Если они работают, то вам не надо ничего
  55. # менять здесь, т.к. всё уже настроено администратором сервера.
  56. #
  57. # Строки, которые можно раскомментирвать (и использовать) имеют только один #.
  58. # Строки с двумя символами ## раскомментировать не надо. В разделах, которые вы
  59. # не используете, все строки должны начинаться с символа #
  60. #
  61. #####################################################
  62.  
  63. ##  Может быть закомментировано, если вызывает ошибку сервера. Смотрите примечания выше.
  64. # Options +FollowSymLinks
  65.  
  66. #
  67. #  Включение mod_rewrite
  68.  
  69. RewriteEngine On
  70.  
  71. RewriteRule (.*?)_(.*?).html $1$2.html
  72.  
  73. ########## Начало - Правила обработки запросов для блокировки распространенных эксплоитов
  74. ## Если у вас возникли проблемы с вашим сайтом, используйте ниже описанные операции
  75. ## Они пытаются заблокировать самые распространенные эксплоиты Joomla!
  76. #
  77. ## Код запрета доступа к xml-файлам расширений (раскомментируйте для активации)
  78. #<Files ~ "\.xml$">
  79. #Order allow,deny
  80. #Deny from all
  81. #Satisfy all
  82. #</Files>
  83. ## Конец кода запрета доступа к xml-файлам
  84. # Блокировать любой запрос, пытающийся установить значение mosConfig через URL
  85. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
  86. # Блокировать любой запрос, пытающийся испортить base64_encode через URL
  87. RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
  88. # Блокировать любой запрос, содержащий тег <script> в URL
  89. RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
  90. # Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
  91. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
  92. # Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
  93. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
  94. # Перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками!
  95. RewriteRule .* index.php [F]
  96. #
  97. ########## Конец правил обработки для блокировки распространенных эксплоитов
  98. #  Раскомментируйте следующую строку, если URL вашего web-сервера
  99. #  не связаны напрямую с физическими путями файлов.
  100. #  Обновите ваш каталог Joomla (используйте "/" для обозначения корня сервера)
  101. RewriteBase /
  102.  
  103.  
  104. ########## Начало раздела SEF ядра Joomla!
  105. #
  106. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  107. #
  108. # Если запрошенный путь и файл не содержат /index.php и запрос еще
  109. # не был перенаправлен на скрипт index.php
  110. RewriteCond %{REQUEST_URI} !^/index\.php
  111. # и запрашивается URL корня или расширения, или
  112. # запрашиваемый URL оканчивается на одно из перечисленных расширений
  113. RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
  114. # и запрошенный путь не соответствует пути к физическому файлу
  115. RewriteCond %{REQUEST_FILENAME} !-f
  116. # и запрошенный путь не соответствует пути к физической папке
  117. RewriteCond %{REQUEST_FILENAME} !-d
  118. # то перенаправить запрос на скрипт index.php
  119. RewriteRule .* index.php [L]
  120.  
  121. #
  122. ########## Конец раздела SEF ядра Joomla!
  123.  
 
 Top
shabalin
Отправлено: 15 Марта, 2012 - 05:48:25
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




69-71 строчки в вашем конфиге должны быть такими:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)[_\.](.+)\.html $1$2.html

Стоит заметить, что в данном случае будут удаляться из урла только одна точка или одно подчеркивание, если таковые имеются и файл с оригинальным урлом не существует.


-----
Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB