我的网站建立在定制的集中式传统CMS上。
它有一个在URL /数据库
下工作的部分对于一个网站,我想将其更改为使用/ blog,但仍需要告知CMS其数据库。
所以.htaccess我有
RewriteRule ^blog$ /database [P,L]
RewriteRule ^blog/(.*)$ /database/$1 [P,L]
哪个效果很好。但我还需要告诉谷歌网站已经改变,而不是看旧网站。
所以我需要/ database to 301 to / blog。
所以:
RewriteRule ^database$ /blog [L,R=301]
我已经使用http://htaccess.madewithlove.be对此进行了测试,它说它很好,但它会在浏览器中造成无限循环。
说实话,我觉得问题的一部分是我不能很好地表达这个问题,尤其是标题,所以对此的任何反馈都会受到赞赏。
以下是文件的其余部分,以防相关
# redirect trailing slashes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.+)?fromMobile=true$ [NC]
RewriteRule (.*) /$1?%1&%2 [R=301,L]
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
#uk.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^iflg\.uk\.com$ [NC]
RewriteRule ^(.*)$ http://www.iflg.uk.com/$1 [R=301,L]
RewriteRule ^blog$ /database [P,L]
RewriteRule ^blog/(.*)$ /database/$1 [P,L]
#RewriteCond %{REMOTE_ADDR} !=localhost
#RewriteRule ^database$ /blog [L,R=301]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~iflg/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~iflg/index.php
</IfModule>
答案 0 :(得分:0)
您需要免除第二条规则以防止代理服务器被重定向。
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteRule ^database$ /blog [L,R=301]
不要依赖那个htaccess测试仪,它太简单了。