php - Mod rewrite 完全重写url(忽略所有参数)/部分包含参数名称

标签 php mysql mod-rewrite

我对这种事情很陌生,所以如果我的问题不太清楚,我深表歉意。 我的网址如下所示

example.com/language/index?page=detail&idcontact=77

我想把它重写成这个

example.com/language/contact


我想要“联系人”前面没有 id 并忽略其他所有内容
提前谢谢您

最佳答案

URL 重写并不像您想象的那样工作。如果您因为 SEO 而想要从一个 URL 重定向到另一个 URL,您可以在 .htaccess 文件中这样做:

Redirect 301 /language/index?page=detail&idcontact=77 http://example.com/language/contact

谨慎使用代码,301 表示永久重定向。如果只是暂时的,请使用 302

如果您想使用 URL 重写,则可以采用其他方式。在您的代码中,您必须使用漂亮的 URL example.com/language/contact,并且在您的 .htaccess 中,您必须将漂亮的 URL 重写为丑陋的 URL,以便您的 php 知道该怎么做。这不是最好的解决方案,它只是展示如何做到这一点:

RewriteEngine on
RewriteRule   ^/language/contact /language/index?page=detail&idcontact=77

如果你想让它真正工作,你的漂亮 URL 可以使用参数,这样你的 php 就知道参数页面和 idcontact 中的内容。你可以这样做:

RewriteEngine on
RewriteRule   ^/language/page-([a-zA-Z]+)/idcontact-([0-9]+) /language/index?page=$1&idcontact=$2

这样,您可以重定向到任何页面,并且参数页面仅接受字母,而 idcontact 仅接受数字。

关于php - Mod rewrite 完全重写url(忽略所有参数)/部分包含参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49002882/

相关文章:

.htaccess 隐藏文件扩展名不起作用 (WampServer)

php - 如何在 Linux 中使用 xampp 指向根目录中的文件?

php - 无法让 SSL 站点正确加载 JS + CSS。 throw 409(冲突)

php - 旧动态 url 的 mod_rewrite 向后

php - MYSQL IN 子句不起作用

mysql - 如何搜索包含子字符串的行?

apache - .htaccess 将所有子域重定向到一个目录,并保留 url

php - 如何避免在表单的某些文本字段中列出以前输入的值? HTML, PHP

php - 无法在 laravel 中创建表

php - Laravel 在电子邮件确认 View 不起作用后立即更改密码