2014-01-23 58 views
0

所以我一直在努力與這個網站幾天了。我試圖從SEO的角度來優化網站,因此我們需要在網站上重寫幾個網址,因爲它們在網址中被硬編碼爲「/?breadcrumb」。Htaccess規則不能禁止我的網站的區域

我們需要一個301重寫規則來重寫網站上包含「?」的所有內容。在最後一個正斜槓的URL中。直到我們注意到它正在影響CSS和JavaScript文件時,這工作正常。然後,我們添加了一條新規則,以防止將此規則應用於CSS和JavaScript文件。一切都很好,直到我們發現商店搜索不起作用,產品不會在管理員後端加載。

下面是規則,我們有這麼遠:「?」

RewriteCond %{REQUEST_URI} .(css|js)$ [NC] 
RewriteRule ^.*$ - [NC,L] 


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

RewriteRule ^product/([^/]+)/?$ /$1/ [R=301,L] 

我們都在努力,因爲我們需要重寫任何包含的URL在到最後一個正斜槓的URL中,但我們需要防止將此規則應用於「/ store/search/」和「/ administratorlogin/」。我還想補充一點,「/ administratorlogin/*」在https上,如果這有所作爲。

我已經在網上閱讀並嘗試使用RewriteCond%{REQUEST_URI}!^/store/search /?$,但是這並不奏效。

任何幫助,將不勝感激

+0

哇,哇,哇。你的出發點是什麼(來自訪問者的期望的SEO格式URI等),以及你需要做什麼(服務器和腳本語言可以處理的動態非SEO格式)? –

回答

0

試試這個規則:

RewriteEngine On 

RewriteCond %{REQUEST_METHOD} POST [OR] 
RewriteCond %{REQUEST_URI} /(store/search|administratorlogin) [NC,OR] 
RewriteCond %{REQUEST_URI} \.(css|js)$ [NC] 
RewriteRule^- [L] 

RewriteCond %{QUERY_STRING} .+ 
RewriteRule ^(.*)$ /$1/? [R=301,L] 

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

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^product/([^/]+)/?$ /$1/ [R=301,L]