我的网站上有这种类型的网址(因为你可以看到破折号的使用非常随机):
http://www.example.com/my_sub_directory/this--is--the-page-title---excellent-title
http://www.example.com/my_sub_directory/this-is--the--page-title--excellent-title
http://www.example.com/my_sub_directory/this-is-the-page----title---excellent---title
我想用以下格式重写它们
http://www.example.com/my-sub-directory/this-is-the-page-title-excellent-title
正如您所看到的,原始网址中的短划线数量是可变的。这可能吗?我可以为所有网址执行此操作,还是可以全局执行此操作?
您能否提供一个关于如何重写此
的简单示例http://www.example.com/my_sub_directory/
进入这个
http://www.example.com/my-sub-directory/
非常感谢
答案 0 :(得分:0)
这可能吗?我可以为所有网址执行此操作,还是可以全局执行此操作?
是的,但没有.htaccess
规则。如果您具有对系统或vhost配置的root访问权限,则可以使用RewriteMap prg:
。不过你能做的就是这样想:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*?--.*)$ remapper.php?url=$1 [L]
然后使用重映射脚本来修改url参数并发出header("Location: ...")
来重定向到“规范化”URI。
Re:my_sub_directory/
重写,这对于固定目录字符串来说是微不足道的,但是一般情况需要按上述方式处理:
RewriteRule my_sub_directory/ my-sub-directory/ [L]