2014-11-16 2 views
0

у меня есть такие URLs:переписывание URL в корневой каталог с URL резки

http://site.ru/ontent/wefwefw/article.php?article=369-tayskaya-kuhnya-recept-s-foto 
http://site.ru/ontent/wefwefw/article.php?article=32237-ogurci-recepti-na-zimu 
http://site.ru/ontent/wefwefw/article.php?article=90-ogurci-na-zimu-recepti-po-koreyski 

Я хочу переписать тхам как:

http://site.ru/tayskaya-kuhnya-recept-s-foto.html 
http://site.ru/ogurci-recepti-na-zimu.html 

Я пытался чего-л, как:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ ontent/wefwefw/$1 [L] 

Но как вырезать ненужные части строки?

+0

Вы не можете сделать это прямо с * mod_rewrite *, так как у вас есть некоторые Параметр 'ID ', связанный с каждой статьей в ваших URL-адресах –

ответ

0

Если article.php не может получить правильную статью только из названия, то то, что вы хотите сделать, невозможно. mod_rewrite хорош в переписывании вещей, но он не может вызвать идентификатор статьи из тонкого воздуха, если он не находится в исходном запросе. Вы бы что-то вроде:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)\.html$ ontent/wefwefw/article.php?article=$1 [L] 

Когда вы хотели бы просить http://site.ru/tayskaya-kuhnya-recept-s-foto.html, она будет загружать http://site.ru/ontent/wefwefw/article.php?article=tayskaya-kuhnya-recept-s-foto. Затем вам нужно получить id 369 каким-либо другим способом, основываясь на заголовке, если это необходимо.

0

Лучшие в этом случае:

http://site.ru/369-tayskaya-kuhnya-recept-s-foto.html 

перенаправлять

http://site.ru/ontent/wefwefw/article.php?article=369 

с:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(\d+)-[^/]*\.html$ ontent/wefwefw/article.php?article=$1 [L] 
Смежные вопросы