2012-05-25 73 views
0

首先,對不起我的英文不好。htaccess重寫查詢字符串並刪除空值

我嘗試重寫從表單獲取並重定向的url。

我的網址是這樣的:

http://www.mysite.com/properties?action=search&agreement=for-rent&category=my-category&type=&zone=my-zone&city=my-city 

,我有這樣的.htaccess配置:

11. RewriteCond %{QUERY_STRING} ^action=(?:[a-zA-Z\-]*)&(?:.*)=([a-zA-Z\-]*)&(?:.*)=([a-zA-Z\-]*)&(?:.*)=([a-zA-Z\-]*)&(?:.*)=([a-zA-Z\-]*)&(?:.*)=([a-zA-Z\-]*)$ 
12. RewriteRule (.*) %{REQUEST_URI}/%1/%2/%3/%4/%5/? [R=301,L] 

所以基本上我所有的要求都直接指向index.php。

21. RewriteCond %{REQUEST_URI} !index\.php|resources|hidden 
22. RewriteRule ^(.*)$ index.php/$1 [L] 

所有的作品,但問題是,當我在查詢字符串爲空值,規則添加雙斜線和上面的網址(例如絲毫&類型= &區=我區...類型有空值)將轉化這樣的:

http://www.mysite.com/for-rent/my-category//my-zone/my-city/ 

的問題是:如何刪除在.htaccess如果我有查詢字符串中的一個或多個空值所產生的雙斜線?

謝謝

回答

1

最簡單的是做另一個重定向(不真正漂亮,因爲它需要兩個301)。

RewriteCond %{THE_REQUEST} // 
RewriteRule .* $0 [R=301,L] 

有趣的部分是,當url加載了一個雙斜槓,mod_rewrite會自動刪除它。正如你可以在上面看到的,你只需要將自己的url重寫一遍。

相關問題