php - htaccess 使用 mod_rewrite 重定向 seo 友好的 url

标签 php .htaccess

我正在尝试使用 htaccess 将我的 index.php 作为 key 并使用以下代码来缩减我的 url:

  RewriteEngine on
  RewriteRule ^([^/]+)$ index.php?city=$1 [NC]

要在我的成员(member)区使用它,我是否只需添加以下内容以在 mysite.com/members/index.php 上工作?city=$1

      RewriteRule ^members/([^/]+)$ index.php?city=$1 [NC]

如果一个城市有多个单词,例如:new york city,最好的处理方法是什么?在 .htaccess 中定义它(不确定是否可能)以将纽约市 -> 纽约市或实际上任何空间更改为破折号。或者,在 php 中使用一个函数来替换使用 $_GET 的数据库查询的 ' ' -> '-'?

最佳答案

我会在 PHP 中用破折号替换空格,然后重定向到新版本的 URL 以获得易于阅读的地址。 (空格被编码为 %20,这不是很容易阅读)

这样你仍然可以输入地址 domain.com/new york city 但会被重定向到 domain.com/new-york-city domain.com/new%20york%20city

.htaccess 中的替换可以通过这样的方式实现:

RewriteRule ^([^\s]*)\s(.*) $1-$2 [N]

(基于对 Search and replace in apache htaccess a RewriteRule 的回答)

关于php - htaccess 使用 mod_rewrite 重定向 seo 友好的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217865/

相关文章:

mysql - 使用数据库值重写动态网页的 htaccess 中的 URL?

php - 错误监控/处理/提醒系统中PHP服务的最佳实践

php - 如何从 pinterest 获取所有图钉?仅获得 50 个引脚

php - NSDebugDescription =字符0周围的值无效。-JSON错误

php - 重定向 301 不适用于 url 中的 php 变量

.htaccess 重定向子目录下的所有子目录

apache - 重定向和查询字符串的问题

php - SEO 友好的 URLS HTACCESS PHP

php - 在 MySQL 中执行 UNION ALL 时设置值

php - 插入忽略不起作用