2014-03-06 59 views
1

首先我想爲我的英文道歉。.htaccess重寫規則索引

我正在嘗試製作漂亮的網址。不幸的是,我在這方面沒有什麼經驗。現在.htaccess文件內容如下:

RewriteEngine on 
RewriteRule index/(.*)/(.*)/ index.php?category=$1&page=$2 
RewriteRule index/(.*)/(.*) index.php?category=$1&page=$2 
RewriteRule index/(.*)/ index.php?category=$1 
RewriteRule index/(.*) index.php?category=$1 
RewriteRule index/ index.php 
RewriteRule index index.php 

它的工作原理。重寫的鏈接,如:

site.com/index/department/workers

到:

site.com/index.php?category=department&page=workers

這樣的index.php可以用這個鏈接工作。如果沒有「頁面」參數,則第三或第四條規則處理該鏈接。等等。

問題是,在地址欄中有「索引」。我想喜歡

site.com/department/workers(不包括指數)

這是可能的鏈接?或者有人可以給我建議,我該如何重寫規則?

回答

0

您可以從重寫規則中刪除索引。只是確保你考慮符合實際文件的請求,例如:

DirectoryIndex index.php 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/(.+)/?$ index.php?category=$1&page=$2 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/?$ index.php?category=$1 

這將:

  • 定義的index.php的索引文件形式
  • 重寫請求/something/somethingelse/index.php?category=something&page=somethingelse
  • 重寫表單/something/index.php?category=something

請注意,您不需要兩條規則來說明ends-with- /和doesnt-end-with-/- 您可以在單個規則中對此進行說明。有關設置重寫規則的更多信息,請參閱the documentation

0

你可以嘗試:

RewriteEngine on 
RewriteRule (.*)/(.*)/ index.php?category=$1&page=$2 
RewriteRule (.*)/(.*) index.php?category=$1&page=$2 
RewriteRule (.*)/ index.php?category=$1 
RewriteRule (.*) index.php?category=$1 
RewriteRule/index.php 

不知道這是你的意思,但。