2015-06-13 149 views
0

我想在URLs /文件夾末尾只有一個沒有尾部斜線的URL,但同時我想重新編寫此文件夾以便使用動態網頁,例如:重寫文件夾並刪除末尾的斜槓

,如果我有:

mydomain.com/folder 
mydomain.com/folder/ 

mydomain.com/folder/second 
mydomain.com/folder/second/ 

那麼我想只打開 「mydomain.com/folder」 和「mydomain.com/folder/第二個「,這個網址應該打開一個動態頁面秒。這是我正在嘗試,但它不工作,它崩潰我的頁面:

RewriteEngine On 
RewriteRule ^(.*)/$ /$1 [L] 
RewriteRule ^(.*)$ includes/category.php?url=$1&pageType=category [L] 

RewriteRule ^(.*)/(.*)/$ /$1/$2 [L] 
RewriteRule ^(.*)/(.*)$ includes/subcategory.php?url=$1&pageType=subCategory [L] 

我在做什麼錯了?你能幫我運行正確的語法嗎?

回答

1

您需要重定向末尾的斜槓URL而不是重寫它們。您還可能需要一些條件添加到規則:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)$ /includes/category.php?url=$1&pageType=category [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ /includes/category.php?url=$1&pageType=subCategory [L] 
+0

謝謝@JonLin它完美的工作! – Saymon

0
RewriteEngine On 
RewriteRule ^([^\/]+)/?$ includes/category.php?url=$1&pageType=category [L] 

RewriteRule ^([^\/]+)/([^\/]+)/?$ includes/subcategory.php?url=$1&pageType=subCategory [L] 

你還可以添加以下條件(重寫之前),以排除那些規則真正的文件和文件夾:

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