将新规则添加到.htaccess时,站点会重定向多次

时间:2018-01-18 05:49:59

标签: php apache .htaccess redirect mod-rewrite

我已经在我的.htaccess文件中添加了一些新规则,在添加这些规则之后,我的网站现在重定向了2次是否有一种方法可以保持我的规则,我的网站只会重定向一次这里是写入的规则我的.htaccess文件

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

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

# END WordPress

我已检查过以下site的重定向。

我不确定我做错了什么。

1 个答案:

答案 0 :(得分:1)

我刚刚发现了我的问题并解决了它。真正的问题是在根目录中有两个.htaccess文件,在我/ blog目录中有第二个我只是从/blog/.htaccess更改了一些规则并在我的root / .htaccess文件中添加了一些新规则解决了这个问题这里的重定向问题是我的.htaccess的更新规则。

根.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^hkdcrandom\.com$
RewriteRule (.*) https://www.hkdcrandom.com/blog/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www.hkdcrandom\.com$
RewriteRule (.*) https://www.hkdcrandom.com/blog/ [R=301,L]

/blog/.htaccess(更新后的规则)

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

# END WordPress

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

这些规则在我的案例中解决了这个问题,希望将来能帮助其他人