如何在htaccess上重用条件块,所以我不需要再为新规则编写它?

时间:2015-03-09 01:41:18

标签: php wordpress .htaccess codeigniter mod-rewrite

我正在使用Wordpress写博客,我有一个使用Codeigniter的网站,两者都在同一台服务器上。我正在为他们设置路由,我在.htaccess文件

上有这个规则
RewriteEngine on

RewriteCond $1 !^(images|robots\.txt|styles)
RewriteCond $1 !\.(ico|js|css|jpg|png|gif|html|ico?g)$

RewriteCond %{REQUEST_URI} blog/
RewriteRule ^(.*) blog/index.php [L]

RewriteCond $1 !^(index\.php|images|robots\.txt|styles)
RewriteCond $1 !\.(ico|js|css|jpg|png|gif|html|ico?g)$

RewriteRule ^(.*)$ index.php/$1 [L]

但请注意,大多数情况都是一样的,因为两次重写都需要几乎相同。

如果删除第二个条件块并直接跳到第二个RewriteRule,我会收到服务器错误。是否可以为不同的规则分组条件(并最终添加一些额外的条件,就像我对第一条规则所做的那样)?

1 个答案:

答案 0 :(得分:0)

尝试一下:

RewriteEngine on

RewriteCond $1 !^(index\.php|images|robots\.txt|styles)
RewriteCond $1 !\.(ico|js|css|jpg|png|gif|html|ico?g)$

RewriteRule ^blog/.* blog/index.php [L]
RewriteRule ^ index.php [L]

我无法捕获博客部分的.*,因此无法捕获。不要以为它确实需要。