我正在尝试使用 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/