我们的网站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,但这将是几百行。
提前致谢!
答案 0 :(得分:2)
使用此:
RewriteRule ^([^/]+)/index.php$ $1/ [L,R=301]