结合htaccess重定向规则

时间:2014-08-27 05:10:37

标签: .htaccess url-rewriting

我有2个单独的htaccess,我需要将它们合并为一个,但我不知道该怎么做。这些是我的htaccess:

1

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

2

RewriteEngine On
RewriteCond %{THE_REQUEST} \ //([^\?\ ]*)
RewriteRule ^ /folder/%1 [L,R=301]

我应该将它们放在同一个ifmodule中吗?我已经尝试过了,但它没有用。

2 个答案:

答案 0 :(得分:0)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \ //([^\?\ ]*)
RewriteRule ^ /folder/%1 [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

答案 1 :(得分:0)

这样做:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# remove multiple slashes
RewriteCond %{REQUEST_URI} ^(.*?)//+(.*)$
RewriteRule ^ %1/%2 [R=302,L,NE]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
  • 在新的浏览器中测试,以避免旧的301缓存。
  • 如果发生重定向循环,则打开Firebug并访问带有2个斜杠的URL,并在“网络”选项卡中检查重定向的内容。