/ / URL Rewrite - рядок запитів - .htaccess, mod-rewrite, query-string

URL-адреса перезапису - String запиту - .htaccess, mod-rewrite, рядок запиту

У мене є сайт новин (блог), який повертає URL-адреси в наступному форматі, коли вибрано окремі публікації:

website.net/sitenews.php?q=posts/view/postname/12

Я прагну переписати URL-адресу, щоб вона читала:

website.net/sitenews.php/posts/view/postname/12

або будь-яким іншим способом, де ?q= видаляється з метою видалення ? таким чином, щоб URL можна було отримати за допомогою кнопки, подібної до facebook, оскільки URL-адреса URL-адреси facebook не аналізує рядки запитів.

У файлі htdocs .htaccess в кореневому каталозі я спробував наступне:

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{QUERY_STRING} q=

RewriteRule (.*) website.net/sitenews.php/$1? [R=301]

Це успішно видаляє q=? однак решта рядка (posts/view/postname/12) не повертається, а URL зараз виглядає наступним чином:

 website.net/sitenews.php/sitenews.php

Хто-небудь є які-небудь пропозиції, щоб допомогти мені завершити цей url_rewrite?

Відповіді:

2 для відповіді № 1

Спробуйте замість цього .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^(.*)$ /$1/%1? [R=301,L,NE]

R=301 will redirect with https status 301
L will make last rule
NE is for no escaping query string

%1 is capture group for query string q= (whatever comes after q=)
$1 is your REQUEST_URI

0 для відповіді № 2

Якщо ви використовуєте будь-яку CMS, наприклад wordpress, або joomla або SE, тоді у вас є можливість зробити це ще, для чого потрібно .htaccess файл, де можна написати код, зверніться до цих посилань

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html

http://www.webmasterworld.com/forum92/2545.htm

http://www.google.com/#sclient=psy&hl=en&q=htaccess+change+the+url&aq=0p&aqi=p-p1g4&aql=&oq=htaccess+&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c875dd2b8adea15a