【发布时间】:2014-07-14 07:00:09
【问题描述】:
我们的网站 example.com 有一堆目录,这些目录曾经有这样的链接:
example.com/product-line-1/index.php
example.com/product-line-2/index.php
除了,更常见的是:
example.com/product-line-1
或
example.com/product-line-1/
我意识到这是一个常见的不一致/问题,当我们建网站时,我们应该更加一致。
但是,我们选择了要使用的语法,它不是 index.php,而是使用尾部斜杠
example.com/product-line-1/
我们已将链接标准化为始终为example.com/product-line-1/,并在没有链接时使用一些 htaccess 添加尾部斜杠。
最后一点是将任何 example.com/directory/index1.php 301 重定向到 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,但这将是几百行。
提前致谢!
【问题讨论】:
-
你的 .htaccess 是如何以
RewriteCond结尾的?
标签: .htaccess mod-rewrite