我使用新的页面路径和反映路径的文件/目录结构重建了一个网站。新网站是基于PHP的,因此所有页面文件名都附加了“.php”,但我隐藏了公共路径中的.php扩展名。
旧网站在www.somedomain.com/es上有西班牙语发言人的主页。新网站有一个西班牙语发言人的主页,网址为www.somedomain.com/es/inicio.php。 inicio.php文件现在位于名为'/ es'的目录中。
我的.htaccess读到:
Redirect 301 /es/node/64 http://www.somedomain.com/es/vacaciones-y-actividades/actividades-locales
Redirect 301 /es http://www.somedomain.com/es/inicio
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
成功重写页面请求,并按预期附加.php。像第一个重定向的工作正常。但是,导航到http://www.somedomain.com/es会导致重定向循环。
为什么?
答案 0 :(得分:0)
导航到http://www.somedomain.com/es会导致重定向循环错误,因为您的Redirect
模式/es
也与目标路径/es/inicio
匹配。您需要修复它,使您的模式与目标路径不匹配。使用RedirectMatch
和正则表达式模式来解决这个问题。
RedirectMatch 301 ^/es/?$ http://example.com/es/initio
清除浏览器缓存,或者如果问题仍然存在,请使用不同的浏览器进行测试。