2009-12-12 53 views
0

我有一個網站,我不認爲我的htaccess正在實施301重定向,我認爲我的問題可能是在應用程序級別,但如果有人可以確認以下作品,我會很感激它,因爲我期望它。我的重定向不刪除最後一個斜槓?

示例重定向:http://www.siteic.com/a/b/c/應該去http://www.siteic.com/a/b/c - 但是下面不這樣做。 通知刪除尾部斜線。

Options +FollowSymLinks 
RewriteEngine on 
ErrorDocument 404/

RewriteCond %{HTTP_HOST} ^siteic\.com 
RewriteRule ^(.*)$ http://www.siteic.com/$1 [R=permanent,L] 

RewriteCond {REQUEST_URI} ^/first/$ 
RewriteRule ^(.*)$ http://www.siteic.com [R=permanent,L] 

RewriteCond {REQUEST_URI} ^/first$ 
RewriteRule ^(.*)$ http://www.siteic.com [R=permanent,L] 

RewriteRule ^first/([a-z,\_%,A-Z,\_%-,0-9,\-]*)$ otherst.php?page=$1 
RewriteRule ^first/([a-z,\_%,A-Z,\_%-,0-9,\-]*)/([a-z,\_%,A-Z,\_%-,0-9,\-]*)$ otherst.php?page=$1&page2=$2 
+0

坦白地說,沒有規則,會匹配'/ A/b/C /'。 – Gumbo 2009-12-12 22:29:15

回答

1

我會懷疑你第一個規則是永遠是真的,因此後續的規則永遠不會被使用。

您應該使用來代替:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www.your_domain.com$ 
RewriteRule ^(.*)$ http://www.your_domain.com/$1 [R=301] 

你的第二個規則使確保所有URI以字符串「/首/」重定向到主頁。 你的第三條規則與字符串'/ first'完全一樣,所以實際上你可以刪除你的第二條規則,或者你的第三條規則取決於你想要的行爲。

你的第四條規則永遠不會匹配,因爲具有「first /」的uri將被重定向到主頁。 你的第五規則應該比你的第四個規則之前,因爲第4條規則將更加頻繁真的比規則5.

至於你的要求:如何刪除結尾的斜線,我這樣做: - 首先確保路徑指向一個不存在的目錄 - 如果爲true,去掉斜線

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

所以在最後我會做到這一點:

RewriteEngine on 
# force WWW in the url 
RewriteCond %{HTTP_HOST} !^www.siteic.com$ 
RewriteRule ^(.*)$ http://www.siteic.com/$1 [R=301] 

# remove trailing slash if the url points to a non-existing folder 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

# redirects all url with /first to otherst.php 
## with 2 GET vars 
RewriteRule ^first/([a-z,\_%,A-Z,\_%-,0-9,\-]*)/([a-z,\_%,A-Z,\_%-,0-9,\-]*)$ 
otherst.php?page=$1&page2=$2 

## with 1 GET var 
RewriteRule ^first/([a-z,\_%,A-Z,\_%-,0-9,\-]*)$ otherst.php?page=$1 
+0

剛試過這個,它不能解決我的問題。 :( - 它仍然做我上面的代碼做的。它不會做'http:// www.siteic.com/a/b/c /'重定向到'http://www.siteic.com/a/b/c' - 注意斜槓。授予你的代碼更清潔,更高效,更合理。 – Abs 2009-12-12 21:37:36

+0

我已經更新了你的請求。 – pixeline 2009-12-12 22:02:09

相關問題