2011-04-06 207 views
0

我該如何允許.php,尾部斜線和尾部斜線?如何允許.php,尾部斜線和尾部斜線?

RewriteEngine on 

RewriteCond %{REQUEST_URI} (.*)(\.php|\/)$ 
RewriteRule (.*)$ %1 [R=301,L] 

DirectoryIndex index.php 
#directory ban 
Options All -Indexes 

ErrorDocument 400 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

FileETag MTime Size 
ExpiresActive on 
ExpiresDefault "access plus 86400 seconds" 

# 1 WEEK 
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> 
Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 
# 2 DAYS 
<FilesMatch "\.(xml|txt|css|js)$"> 
Header set Cache-Control "max-age=172800, proxy-revalidate" 
</FilesMatch> 
# 1 MIN 
<FilesMatch "\.(html|htm|php)$"> 
Header set Cache-Control "max-age=60, private, proxy-revalidate" 
</FilesMatch> 

<IfModule mod_expires.c> 
# any Expires Directives go here 
</IfModule> 

<IfModule mod_headers.c> 
# any Header directives go here 
</IfModule> 

<ifmodule mod_deflate.c=""> 
<filesmatch ".(js|css)$"=""> 
SetOutputFilter DEFLATE 
</filesmatch> 
</ifmodule> 
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteRule ^(.*)$ mydomain.com/$1 [R=301,L] 

回答

1

試試這個修改.htaccess文件來代替:

RewriteEngine on 
DirectoryIndex index.php 
Options All -Indexes 

ErrorDocument 400 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php  
## doesn't work for me 
##FileETag MTime Size 
##ExpiresActive on 
##ExpiresDefault "access plus 86400 seconds" 
# 1 WEEK 
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> 
Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 
# 2 DAYS 
<FilesMatch "\.(xml|txt|css|js)$"> 
Header set Cache-Control "max-age=172800, proxy-revalidate" 
</FilesMatch> 
# 1 MIN 
<FilesMatch "\.(html|htm|php)$"> 
Header set Cache-Control "max-age=60, private, proxy-revalidate" 
</FilesMatch> 
<ifmodule mod_deflate.c=""> 
<filesmatch ".(js|css)$"=""> 
SetOutputFilter DEFLATE 
</filesmatch> 
</ifmodule> 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{QUERY_STRING} !^myvar=0 
RewriteCond %{REQUEST_URI} !\..*$ 
RewriteRule ^([^/]*)/?$ /$1.php?myvar=0 [QSA,L] 
+0

嗯,現在我的所有網頁除了我的index.php都無法工作。起初,當我試圖去任何非索引頁面時,我被重定向到我的domain.com/error,並顯示錯誤「此網頁有一個重定向循環」。然後,我從.htaccess中刪除了我的「errordocument /error.php」。現在我只是得到一個斷開的鏈接。我認爲重定向現在可能會產生一些迴響效應。有什麼辦法可以讓所有,.php,尾部斜線,沒有斜線,所有的工作? – user657847 2011-04-06 03:51:32

+0

現在我得到的最好是「#BEGIN NoExtensions RewriteCond%{REQUEST_FILENAME} .php -f RewriteRule(。*)/?$ $ 1.php #END NoExtensions」。尾隨斜線不適用於此... – user657847 2011-04-06 03:53:56

+0

根據您的問題,您正試圖使'/foo.php OR/foo/to/foo'這是正確的嗎? – anubhava 2011-04-06 03:58:26

1

嘗試下面的規則,使之按照您的要求工作,

RewriteCond %{REQUEST_URI} (.*)(\.php|\/)$ 
RewriteRule (.*)$ %1 [R=301,L] 

讓我知道,如果它不工作。

+0

上述規則正在與您提到的問題完全相同,即: '/foo.php - >/foo' 和 '/ foo - >/foo' 我也試圖進入我的本地域..它的工作... – 2011-04-06 04:55:40

+0

嗯,它不工作:/。我發佈了我的整個htaccess。也許有什麼東西在擾亂它呢? – user657847 2011-04-06 05:18:07

+0

替換您的最後一行 'RewriteCond%{HTTP_HOST}!mydomain \ .com $ [NC] 。讓我的錯誤,你越來越... – 2011-04-06 05:37:55