.htaccess htaccess重定向不';t工作:重定向太多
如何使用.htaccess htaccess重定向不';t工作:重定向太多,.htaccess,http-status-code-301,.htaccess,Http Status Code 301,如何使用/重定向旧URL,使其只有一个/ 发件人: 致: 此解决方案有太多重定向: Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/ Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/ 您可以使用mod_rewrite来执行此操作。在根.htaccess文件的顶部尝试以下操作: RewriteEngine on Rewri
/
重定向旧URL,使其只有一个/
发件人:
致:
此解决方案有太多重定向:
Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/
Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/
您可以使用mod_rewrite来执行此操作。在根
.htaccess
文件的顶部尝试以下操作:
RewriteEngine on
RewriteCond %{THE_REQUEST} "^GET /maincategory//subcategory/"
RewriteRule (.*) /$1 [R=302,L]
这使用了一个“特性”,即RewriteRule
模式匹配的URL路径已经减少了多个斜杠。然后,我们使用$1
反向引用重定向回同一URL路径。通过检查请求的实际URL是否包含双斜杠(存储在请求
服务器变量中),可以防止重定向循环
_请求
服务器变量包含HTTP请求头的第一行。而且,重要的是,没有经过处理
请注意,我省略了字符串结尾锚($
),因此上面的内容将匹配/maincegory//subcategory/
,并相应地重定向。如果您特别希望只匹配/maincography//subcategory/
,则在模式的末尾包含一个空格(尽管空格+HTTP更容易阅读)。例如:
RewriteCond %{THE_REQUEST} "^GET /maincategory//subcategory/ HTTP"
测试前清除浏览器缓存。使用302(临时)重定向进行测试,以避免缓存问题
此解决方案有太多重定向:
Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/
Redirect 301 /maincategory//subcategory/ /maincategory/subcategory/
Apache似乎在匹配之前减少了请求的URL路径和提供给
Redirect
指令的URL路径中的多个斜杠,因此最终会出现一个重定向循环。您是否可以包括您现在拥有的用于匹配的内容和您尝试过的内容,以及它如何不起作用,等等?@Sloloem所有这些元素都已经包含在问题中了。(?)谢谢你!按部就班地工作:-)