.htaccess重定向,如果满足某些参数

时间:2019-01-17 01:08:23

标签: apache .htaccess

首先,我想说我对.htaccess文件几乎不了解。

我想知道是否可以通过以下方式将example.com重定向到特定目录:

www.example.com/YYYY/MM/
www.example.com/2019/01/article-title

会将我带到 foo 目录,而其他格式会将我带到 bar 目录。

我具有当前的代码,可从public_html重定向到另一个文件夹,但不知道如何制作if语句

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ wp/index.php [L] 
</IfModule>

谢谢。

1 个答案:

答案 0 :(得分:1)

将请求转发到这种模式的特定规则看起来很简单:

RewriteEngine on
RewriteRule ^/?(\d+/\d+/.*)$ /foo/$1 [END]
RewriteRule ^/?(.*)$ /bar/$1 [END]

如果您想确切说明确切的格式,则可能更接近:

RewriteEngine on
RewriteRule ^/?(\d\d\d\d/\d\d/.*)$ /foo/$1 [END]
RewriteRule ^/?(.*)$ /bar/$1 [END]

两个变体都会在内部将/2019/01/article-title重写为/foo/2019/01/article-title。我假设,这就是您真正想要实现的目标。与初始规则匹配的所有 not 网址请求都将被重写为/bar/...