2010-08-19 138 views

回答

0
RewriteRule ^page.php$ http://www.site.com/page/ [QSA,L] 
RewriteRule ^page$ http://www.site.com/page/ [QSA,L] 

也許這會奏效。

1

對於域:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

對於你的第一個目錄:

RewriteRule ^/([^/]*)(\.php)? /$1/ 
+0

這似乎是從'http:// domain.com/page'重定向到'http:// www.domain.com',而不是保留頁面。 – Robert 2010-08-19 20:11:05

0

這應該做你想要的東西:

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/([^\s]*?)\.php [OR] 
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/([^\s]*?[^/\s])\s [OR] 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST}/%1 ^(www\.)?(.*?)/?$ 
RewriteRule^http://www.%2/ [R=301,L] 

# Assuming you want to write the request back to page.php too... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/$ $1.php 
0

蒂姆的答案是最接近的,但它也確實將斜線添加到圖像和css ...

因此,採取添的回答,並稍微修改它給了我們:

RewriteEngine on 

RewriteRule \.(css|jpe?g|gif|png)$ - [L] 

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/([^\s]*?)\.php [OR] 
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/([^\s]*?[^/\s])\s [OR] 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST}/%1 ^(www\.)?(.*?)/?$ 
RewriteRule^http://www.%2/ [R=301,L] 

# Assuming you want to write the request back to page.php too... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/$ $1.php 

這應該工作!