LINUX.ORG.RU

RewriteRule

 


0

1

Всем привет!

Уже весь мозг сломал себе, а решения не пойму - прошу помощи :-) Для генерации ЧПУ используется следующий код.

 RewriteRule ^news^tag/([^/.]+)/page/([^/.]+)/?$ index.php?id=news&tag=$1&page=$2 [L]
 RewriteRule ^news^tag/([^/.]+)/?$ index.php?tag=$1 [L]
 RewriteRule ^news/([^/.]+)/?$ index.php?id=news&post=$1 [L]
 RewriteRule ^news^page/([^/.]+)/?$ index.php?page=$1 [L]
 RewriteRule ^news^archive/([^/.]+)/?$ index.php?archive=$1 [L]

На странице новостей сайта о банкротстве физических лиц https://bankrot.am/news.html есть список новостей. Если открыть тестовую новость, то выдается адрес https://bankrot.am/news/post/rear - по нему ничего нет, что логично. Если руками убрать /post/ - то новость открывается.

Как побороть неправильную генерацию адреса и сделать так, что бы адрес был без слова пост?



Последнее исправление: beastie (всего исправлений: 2)

Ответ на: комментарий от emva

О, сори, запамятовал :) Сейчас расчехлю тест-машину и посмотрю код, отпишу.

znenyegvkby
()
Ответ на: комментарий от emva

Только что поставил все как у вас, использовал все ваши правила в htaccess и страница news/page/1 у меня работает нормально, как и все остальные. Если у вас никаких доп. плагинов кроме news не стоит, рекомендую полностью заменить htaccess (свой старый код лучше сохраните куда-нибудь, мало ли) на тот, что мне сгенерировала CMS

#
# GetSimple CMS htaccess ROOT file
# apache 2.4 
#

# The following require certain allow overrides, 
# if getting 500 error comment them out one by one 
# can be resolved in apache httpd.conf to ensure security alternatives

# override charset
AddDefaultCharset UTF-8

# prevent directory listings
Options -Indexes

# Follow symbolink links, This is required for rewrites on some hosts
Options +FollowSymLinks

# Set the default handler.
DirectoryIndex index.php

# blocks direct access to the XML files - they hold all the data!
<Files ~ "\.xml$">
	<IfModule !mod_authz_core.c>
		Deny from all
	</IfModule>
	<IfModule mod_access_compat.c>
		Deny from all
	</IfModule>
	<IfModule mod_authz_core.c>
		<IfModule !mod_access_compat.c>
			Require all denied
		</IfModule>
	</IfModule>	
</Files>

<Files sitemap.xml>
	<IfModule !mod_authz_core.c>
		Allow from all
	</IfModule>
	<IfModule mod_access_compat.c>
		Allow from all
	</IfModule>
	<IfModule mod_authz_core.c>
		<IfModule !mod_access_compat.c>
			Require all granted
		</IfModule>
	</IfModule>	
</Files>

# handle rewrites for fancy urls
<IfModule mod_rewrite.c>
 RewriteEngine on

 # Usually RewriteBase is just '/', but 
 # replace it with your subdirectory path
 RewriteBase /

 # News Manager:
 RewriteRule ^news/tag/([^/.]+)/page/([^/.]+)/?$ index.php?id=news&tag=$1&page=$2 [L]
 RewriteRule ^news/tag/([^/.]+)/?$ index.php?id=news&tag=$1 [L]
 RewriteRule ^news/page/([^/.]+)/?$ index.php?id=news&page=$1 [L]
 RewriteRule ^news/archive/([^/.]+)/?$ index.php?id=news&archive=$1 [L]
 RewriteRule ^news/([^/.]+)/?$ index.php?id=news&post=$1 [L]
 RewriteRule ^news/([^/.]+)/?.html$ index.php?id=news&post=$1 [L]
 # end News Manager

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule /?([A-Za-z0-9_-]+).html$ index.php?id=$1 [QSA,L]
</IfModule>

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Нажми на страницу 2. После того как она откроется нажми на страницу 1 или на знак меньше.

Видишь ошибку?

emva
() автор топика
Ответ на: комментарий от emva

Эх. На ум ничего не приходит, как только править этот говнокод :(
Файл site/plugins/news_manager/inc/site.php, функция nm_show_navigation строка 505, меняешь

$first = nm_get_url();
На
$first = trim(nm_get_url(), '/') . EXTENSION_EM;
И в начало этого же файла добавь эту константу, тебе с таким подходом она еще не раз пригодится :D
define(EXTENSION_EM, '.html');

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Да, заработало так.

Спасибо огромное!!!

Как же меня задрала эта херня - на ровном месте спотыкается. Разработчики такую херню не могут побороть....

emva
() автор топика
Ответ на: комментарий от znenyegvkby

Выплыла еще одна маленькая проблемка:

https://bankrot.am/sitemap.xml

Тут все ссылки генерируются без учета внесенных нами с тобой изменений. Как то это возможно поправить?

emva
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.