2011-08-21 224 views
2
RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)$ /dir/index.php?category=$1&link=$2 [L] 
RewriteCond %{REQUEST_URI} !\.[^./]+$ 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://www.mydomain.com/dir/$1/$2 [R=301,L] 

我遇到了這個問題,希望有人能幫助我。htaccess尾斜槓

www.domain.com/dir/category/ 

效果很好,但是當涉及到第二個變量

www.domain.com/dir/category/variable/ 

這是行不通的,但如果我刪除最後一個斜槓,它的工作原理...

編輯----------------------------

到目前爲止,這工作正常。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L] 


RewriteCond %{REQUEST_URI} !\.[^./]+$ 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://www.omain.com/dir/$1/$2 [R=301,L] 
+0

這個htaccess在哪裏?它在/ dir? – arnaud576875

+0

是是是是 – ramirez

回答

0

變化

RewriteRule ^([^/]*)/([^/]*)$ /dir/index.php?category=$1&link=$2 [L] 

RewriteRule ^([^/]*)/([^/]*)([^\.css|\.js])/?$ /dir/index.php?category=$1&link=$2$3 [NC,L] 

編輯這是一個巨大的警察了,我會希望在某些時候與做的一切單行規則更新此,但現在這將工作(我的大腦不能正常工作了)。這假定你的JS位於一個名爲'js'的目錄中,並且CSS位​​於一個名爲'css'的目錄中。這些規則的順序很重要!

RewriteRule ^(css|js)/(.*)$ /dir/$1/$2 [L] 
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L] 
+0

與CSS和JS相同的問題 – ramirez

+0

您的js/css鏈接看起來像什麼(src' /'href'屬性的內容)? – DaveRandom

+0

http://www.domain.com/css/style.css – ramirez

1

嘗試通過這一個替換第一RewriteRule

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L] 

這明確允許尾隨斜線在末端。

+0

用於使最後一個斜槓可選。 – Cyclone

+0

它可以工作,但CSS和JS崩潰了... – ramirez

+0

在規則之前添加重寫條件,如果請求的文件不存在,請不要重寫(請參閱我的更新回答) – arnaud576875