我一直在尝试以下的变体,但没有成功:
Redirect permanent /([0-9]+)/([0-9]+)/(.?).html http://example.com/($3)这似乎没有效果。我也尝试过重写,但也没有得到类似的结果。
我希望所有类似:http://example.com/2002/10/some-long-title.html的链接将浏览器和爬行器重定向到:http://example.com/some-long-title
当我将其保存到我的服务器,并访问嵌套文件夹的链接时,它只返回一个404,地址栏中的原始URL保持不变。我想要的是地址栏中的新位置(当然还有内容)。
发布于 2012-11-14 06:23:39
我猜这或多或少就是你想要的:
RewriteEngine On
ReriteRule ^/([0-9]+)/([0-9]+)/(.?)\.html$ http://example.com/$3 [L,R=301]这可以在中央apache配置中使用。如果因为不能访问.htaccess配置而不得不使用apache文件,那么语法稍有不同。
发布于 2012-11-14 07:32:22
使用mod_alias时,您需要RedirectMatch,而不是常规的Redirect指令:
RedirectMatch permanent ^/([0-9]+)/([0-9]+)/(.+)\.html$ http://example.com/$3您的最后一个分组需要是(.+),这意味着包含1个或更多字符的任何内容,您之前拥有的,(.?)匹配任何包含0或1个字符的内容。此外,最后一个反向引用不需要括号。
使用mod_rewrite,它看起来类似于:
RewriteEngine On
RewriteRule ^/([0-9]+)/([0-9]+)/(.+)\.html$ http://example.com/$3 [L,R=301]https://stackoverflow.com/questions/13368504
复制相似问题