htaccess将index.php重写为尾部斜杠

时间:2014-07-14 07:00:10

标签: .htaccess mod-rewrite

我们的网站example.com有一堆目录,过去常常有这样的链接:

example.com/product-line-1/index.php
example.com/product-line-2/index.php

除此之外,更常见的是:

example.com/product-line-1

OR

example.com/product-line-1/

我意识到这是一个常见的不一致/问题,当我们建立网站时,我们应该更加一致。

但是,我们选择使用sytax并且没有index.php,但是使用尾部斜杠

example.com/product-line-1/

我们已经将链接规范化为example.com/product-line-1/并且有一些htaccess可以在不存在时添加尾部斜杠。

最后一位是301将e xample.com/directory/index1.php重定向到example.com/directory/,以保留这些链接可能具有的任何链接汁。

htaccess很长,有很多规则,但这里有更相关的摘录:

## Enables gzip compression 
<IfModule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript 
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|iso|tar|bz2|sit|rar|png|jpg|gif|jpeg|flv|swf)$ no-gzip dont-vary 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.[0678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
Header append Vary User-Agent env=!dont-vary 
</IfModule> 

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##


RewriteEngine on

DirectoryIndex index.php index.html index.htm
RewriteCond %{REQUEST_URI} !^/images/.*

我可以添加一行htaccess到301将/index.php重定向到/?这是一个坏主意,因为它会影响所有目录吗?

或者,我可以为每个/ product-directory添加一行htaccess,但这将是几百行。

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用此:

RewriteRule ^([^/]+)/index.php$ $1/ [L,R=301]