【问题标题】:htaccess rewrite replace space with -htaccess 用 - 重写替换空间
【发布时间】:2011-04-01 21:37:47
【问题描述】:

我真的被重写规则困住了,想知道是否有人可以提供帮助。

我正在从数据库中提取数据,例如,我使用的“名称”字段有时包含 2 个单词,中间有一个空格。我在网站上使用了很多,但在 url 中我想用 - 替换空格,因为我使用这个字段作为变量来确定我想要提取的记录。

所以我需要转为俱乐部/英超/曼城/

进入

俱乐部/英超联赛/曼彻斯特城/

提前致谢

理查德

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite rewrite


    【解决方案1】:

    你能在你的 .htaccess 中试试这个规则吗:

    RewriteEngine on
    RewriteRule ^clubs/([^\s]+)\s([^\s]+)/([^\s]+)\s([^\s]+)/$ /clubs/$1-$2/$3-$4/ [R=302,NC,L]
    

    【讨论】:

    • 非常感谢您的帮助。我遇到的问题是这两个名字都是一个变量,所以英超联赛是一个变量,所以我认为目前我的 htaccess 文件不能使用:##RewriteRule ^clubs/(.*)/(.*) /$ teams.php?competition=$1&id=$2 适用于 url clubs/premier League/manchester city/ 但如果我将空格替换为 - :(
    • @richard grantham:我认为用连字符替换空格的全部目的是您想在某些代码中用作变量。如果不是这种情况,那么我将不得不问在重写规则中将空格转换为连字符的目的是什么?
    • 抱歉,它很难解释,我做得不好。基本上 www.myurl.com/clubs/premier League/manchester city/ 查看表格并返回“英超联赛”联赛和“曼彻斯特城”球队我遇到的问题是 seo 我想要连字符的网址,但他们需要像他们一样从数据库中提取正确的数据,也许重写是正确的方法,你能告诉我实现这一目标的最佳方法吗? :)
    • @richard grantham:谢谢,现在很清楚了。因此,删除 SEO 友好 URL 的空格,但您仍然需要选择查询的空格。我建议按照我的建议保留重写规则,并在您的代码中在您的 SQL 查询之前再次用空格替换连字符。不知道您使用的是哪种语言,但它们都有简单的字符串函数来用另一个字符替换一个字符。这样,您将拥有符合 SEO 的 URL,并且您的查询也可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多