Я знаю, тема обсуждалась тут и в интернете много раз. Но вопрос у меня немного в другом. На сервере стоит: NGinx/1.2.1, Apache/2.2.22 (Ubuntu), PHP 5.3.10-1ubuntu3.2 Соответственно, Nginx отдает статику, Apache обрабатывает скрипты. У меня все работает. Но, как в анекдоте, есть нюанс. Есть 2 Джумлы. 1.5.25 и 2.5.6. Но обовсем по порядку: 1. На джумле 1.5 сейчас ссылки вида www.sitename.ru/2012-03-07-12-19-08/2012-03-07-12-45-36.html . Она не работает, но если удалить в конце ссылки .html и поставить просто /, то ссылка прекрассно открывается. 2. На джумле 2.5 проблемка такого же характера, но ссылка другого вида: http://t.sitename.ru/using-joomla - ссылка никуда не ведет, открывается индекс. Но как только в конце добавляешь /, то ссылка прекрассно работает и открывается нужная страница. Подскажите плз куда рыть? Перегуглил много, и ваш форум тоже, но не нашел решения.
htacsess стоит стандартный. что шел в комплекте. 2.5 стоит ВСЕ по умолчанию, кроме того, что я включил мод реврайт. 2.5 можно посиотреть тут: http://t.veoserv.ru/ - никакой рекоамы, там чистая, только что установленная Joomla. В конфиг Nginx для работоспособности Joomla вставлен код: Код (CODE): try_files $uri $uri/ /index.php?q=$1; .htacsess joomla 1.5 Код (CODE): root@veo-http:/var/www/pargolovo/http# cat .htaccess ## # @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $ # @package Joomla # @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options +FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # ##################################################### ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks # # mod_rewrite in use RewriteEngine On ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # ## Deny access to extension xml files (uncomment out to activate) #<Files ~ "\.xml$"> #Order allow,deny #Deny from all #Satisfy all #</Files> ## End of deny access to extension xml files # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode data within the URL RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Return 403 Forbidden header and show the content of the root homepage RewriteRule .* index.php [F] # ########## End - Rewrite rules to block out some common exploits ########## Begin - Custom redirects # # If you need to redirect some pages, or set a canonical non-www to # www redirect (or vice versa), place that code here. Ensure those # redirects use the correct RewriteRule syntax and the [R=301,L] flags. # ########## End - Custom redirects # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root) # RewriteBase / ########## Begin - Joomla! core SEF Section # RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUEST_URI} !^/index\.php # and the request is for root, or for an extensionless URL, or the # requested URL ends with one of the listed extensions RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html|feed|pdf|raw))$ [NC] # and the requested path and file doesn't directly match a physical file RewriteCond %{REQUEST_FILENAME} !-f # and the requested path and file doesn't directly match a physical folder RewriteCond %{REQUEST_FILENAME} !-d # internally rewrite the request to the index.php script RewriteRule .* index.php [L] # ########## End - Joomla! core SEF Section .htacsess joomla 2.5: Код (CODE): root@veo-http:/var/www/veoserv/test# cat .htaccess ## # @package Joomla # @copyright Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved. # @license GNU General Public License version 2 or later; see LICENSE.txt ## ## # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE! # # The line just below this section: 'Options +FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. ## ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks ## Mod_rewrite in use. RewriteEngine On ## Begin - Rewrite rules to block out some common exploits. # If you experience problems on your site block out the operations listed below # This attempts to block the most common type of exploit `attempts` to Joomla! # # Block out any script trying to base64_encode data within the URL. RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] # Block out any script that includes a <script> tag in URL. RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Return 403 Forbidden header and show the content of the root homepage RewriteRule .* index.php [F] # ## End - Rewrite rules to block out some common exploits. ## Begin - Custom redirects # # If you need to redirect some pages, or set a canonical non-www to # www redirect (or vice versa), place that code here. Ensure those # redirects use the correct RewriteRule syntax and the [R=301,L] flags. # ## End - Custom redirects ## # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root). ## RewriteBase / ## Begin - Joomla! core SEF Section. # RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUEST_URI} !^/index\.php # and the request is for something within the component folder, # or for the site root, or for an extensionless URL, or the # requested URL ends with one of the listed extensions RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC] # and the requested path and file doesn't directly match a physical file RewriteCond %{REQUEST_FILENAME} !-f # and the requested path and file doesn't directly match a physical folder RewriteCond %{REQUEST_FILENAME} !-d # internally rewrite the request to the index.php script RewriteRule .* index.php [L] # ## End - Joomla! core SEF Section.
редирект куда? судя по гуглу и по тому как у меня все устроено, то NGinx не читает файлы .htacsess. Но есть решения, которые приводят к работоспособности данной конструкции. я не понимаю как джумла строит ссылки? и если кто нить подскажет как что и куда рыть, то я думаю что я разберусь и выложу решение.
ScriptAllias httpd-conf Ну и еще добавить на всяк случай ,для чистоты эксперимента в .htaccess DirectoryIndex index.php index.html и закомментируй строку
Спасибо за ответ. Но Вы видимо не в курсе что такое NGinx и никогда не работали с ним. А так же не внимательно читаете мои сообщения. Напоминаю, что у меня стоит NGinx, который обрабатывает все запросы, в том числе и ReWrite. Но по странному (а может и не по странному) стечению обстоятельств NGINX НЕ ЧИТАЕТ .htacsess вообще. Т.е. все изменения, которые я делаю в этом файле не обрабатываются воооооообще. Все дириктивы, которые описаны выше, касаются только Апаче, который у меня служит бэкэндом, т.е. обрабатывает ТОЛЬКО php скрипты, т.к. статику отдает NGINX. В связи с этим перефразирую вопрос: что нужно прописать в /etc/nginx/nginx.conf или в виртуальных хостах NGINX, чтобы Joomla завелась нормально с ModReWrite? Изменения в .htacsess не предлагать, изменения в дириктивах Апача тоже не предлагать, т.к. все это не применяется. PS: если апачу полностью передать все, без NGINX, то все работает. Но мне такое не нравится и не устраивает.
Попробуйте в nginx.conf прописать Код (CODE): location / { if (!-f $request_filename) { rewrite ^(.*)$ /index.php; } }