0
這裏是我的htaccess的樣子:隊在重寫的查詢字符串的結尾斜線
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteRule .? http://site.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} /page1/([^?].*)$ [NC]
RewriteRule /page1/(.*)$ /page1/?$1 [L] # change /page1/stuff to /page1/?stuff
# End rewriting for page1
RewriteCond %{REQUEST_URI} /page2/([^?].*)$ [NC]
RewriteRule /page2/(.*)$ /page2/?$1
# End rewriting for page2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteRule ^(([^/]+/)*)index\.php$ http://%{HTTP_HOST}/$1 [R=301,NS,L]
Options -Indexes
我也希望是有它,如果用戶進入site.com/page1/stuff
或site.com/page1/stuff/more
它將添加結尾斜槓地址欄並將其更改爲site.com/page1/stuff/
和site.com/page1/stuff/more/
但我沒有嘗試過。有沒有辦法做到這一點,而不會導致重定向循環?
我想我所有的網址都有一個斜線,我看到目錄已經這樣做了。
編輯:爲了澄清,我想最後的斜線是對用戶可見,但不是?
您可以添加一個斜槓'/ $ 1' =>'/ $ 1 /' – 2012-04-04 12:10:31
@ShaktiSingh後:a)這些更改不會發生在地址欄中(即用戶永遠不會在url中看到'?')和b)如果查詢字符串以'/'結尾,那麼我不需要另一個。 – qwertymk 2012-04-04 12:14:54
'RewriteCond%{REQUEST_URI}/page2 /([^?].*)$''不會匹配'/ page2 /?stuff'(因爲在這種情況下%{REQUEST_URI}將會是='/ page2 /')。要匹配QUERY STRING,您必須使用'RewriteCond%{QUERY_STRING} PATTERN_HERE' - 查詢字符串(在此特定示例中)將只是「stuff」。 – LazyOne 2012-04-04 12:20:05