htaccess重定向任何请求

时间:2012-02-01 06:30:41

标签: apache .htaccess syntax

两部分......

第1部分 - 我想将任何请求重定向到不存在的目录... 到它的新位置... AND和不存在的文件 - 到它的新位置。

所以:myDomain.com/myFolder(不再存在) 被重定向到myDomain.com/newLocation/myFolder

和/或

myDomain.com/myFolder.htm(不存在) 被重定向到myDomain.com/newlocation/myFolder

这很接近......

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^myFolder http://myDomain.com/newLocation/myFolder 

但我不一定想要键入每个可疑的文件夹名称,我更愿意在请求失败之前检查'newLocation'目录...在任何请求上,而不仅仅是我明确命名的内容

第2部分 有人可以解释htaccess中使用的符号 - 或者指向我的列表...... 例如:

RewriteCond %{REQUEST_URI} ^/$ Rewriterule ^(.*)$ %{REQUEST_URI}/

我看着那个,我知道有什么意思t0 ^ / $等 - 很快就有了RegEx(不熟悉)  或者这个

RewriteCond %{REQUEST_FILENAME} !-f (what's the !-f mean ????)
RewriteCond %{REQUEST_FILENAME} !-d (what's the !-d mean ????)
RewriteRule (.*) index.php?_var=$1 [L] ( the $1 means ...) 

我想了解符号和语法......

1 个答案:

答案 0 :(得分:1)

对于第1部分,规则将需要:

Options +FollowSymLinks -MultiViews
RewriteEngine on
# if requested URI is not a file and not a directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# externally redirect to /newLocation/{URI}
RewriteRule ^ /newLocation%{REQUEST_URI} [L,R=301]

对于第2部分的答案,这里是Apache mod_rewrite official documentation