2012-01-09 1 views
1

Я пытаюсь настроить сайт, где я создаю permalinks, как wordpress, но специфичный для сайта. Таким образом, когда пользователь щелкает по статье он должен хотелНесколько правил перезаписи в .htaccess Чтобы перенаправить на нужные страницы

http://www.sitename.com/url-slug 

Кроме того, когда пользователь нажимает на каталог он должен перенаправить что-то вроде этого

http://www.sitename.com/category/category-slug 

Аналогично, при нажатии на множествах, пользователей, страницы он должен перенаправлять соответственно как

http://www.sitename.com/sets/set-slug 

http://www.sitename.com/user/user-full-name 
http://www.sitename.com/page/page-slug 

Ниже приводится код, я использую в .htaccess, который я уверен, неверен

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule (.*)$ ./single.php?id=$1 
RewriteRule ^category/(.*)/ category.php?id=$1 [L] 


Options +FollowSymLinks 
RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteRule ^(.*)index.php$ http://www.sitename.com/$1 [R=301,L] 

Может ли кто-нибудь руководить мной, где я ошибаюсь, мне нужны эти страницы, чтобы называть их соответствующие страницы ie.php, category.php, sets.php, users.php и page.php соответственно для извлечения и отображения данные. Я новичок в .htaccess, поэтому любая помощь приветствуется.

ответ

9

Я предполагаю, что у вас нет других правил в вашем .htaccess, расположенные не ИНТ корневого каталога сайта вам

RewriteEngine on 
RewriteBase/

#if for an existing directory or file 
RewriteCond %{SCRIPT_FILENAME} -d 
RewriteCond %{SCRIPT_FILENAME} -f 
#then do nothing 
RewriteRule . - [L] 

#otherwise 
#if it is for a slug (assuming alphanumeric and dashes), send to single 
RewriteRule ^([-a-zA-Z0-9]+)/?$ single.php?id=$1 [L] 

#if a category 
RewriteRule ^category/([-a-zA-Z0-9]+)/?$ category.php?id=$1 [L,NC] 

#if a sets 
RewriteRule ^sets/([-a-zA-Z0-9]+)/?$ sets.php?id=$1 [L,NC] 

#if a sets 
RewriteRule ^user/([-a-zA-Z0-9]+)/?$ users.php?id=$1 [L,NC] 

#if a page 
RewriteRule ^page/([-a-zA-Z0-9]+)/?$ page.php?id=$1 [L,NC] 
+0

Спасибо людей! это то, что мне понравилось в Stackoverflow. Вы получаете ответы прямо и точно. Бесконечно благодарен. – user4203