2012-01-09 49 views
1

我想安裝一個網站,我創建永久鏈接就像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] 

有人可以指導我在哪裏出錯,我需要這些網頁來調用其各自的頁面,即single.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 2012-01-10 14:27:33