2015-06-23 80 views
1

自從我在這裏工作了好幾個小時以來,我一直在敲我的頭,我無法想出一個解決方案。使用htaccess重寫非動態頁面

我需要做些什麼。

  • domain.com/page.php => domain.com/page/
  • domain.com/category1-name1.php => domain.com/category1/name1/
  • domain.com/產品組別-name1.php => domain.com/category2/name1/

詳細信息:我有以下名稱&我希望他們能夠通過以下方式來顯示文件的情侶。

  • 類別1-name1.php =>類別1/NAME1/
  • 類別1-name2.php =>類別1/NAME2/
  • 類別1-name3.php =>類別1/NAME3/
  • category2- name100.php =>類別2/name100/
  • 類別2-something.php =>類別2 /東西/
  • 類別2-lipsum.php =>類別2/lipsum/

另外,我想實現以下重寫過

  • /category.php => /分類/
  • /abcd.php =>/ABCD/

我想但我無法做到。

我試過這段代碼:

RewriteEngine On 
RewriteRule ^category1/([^/]+)/?$ category1-$1.php [L] 
RewriteRule ^category2/([^/]+)/?$ category2-$1.php [L] 
RewriteRule ^([^/]*)/?$ $1.php [L] 

它唯一的工作/abcd.php到/ ABCD /及其對頁面的其餘拋出404錯誤,甚至指數爲404,由於它。

回答

0

嘗試以下規則在你的/ htaccess文件:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/([^.-]+)\.php [NC] 
RewriteRule^%1/ [NC,R,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/([^-]+)-([^.]+)\.php [NC] 
RewriteRule^%1/%2/ [NC,R,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^([^/]+)/?$ $1.php [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^([^/]+)/([^/]+)/?$ $1-$2.php [QSA,NC,L]