【问题标题】:How do i rewrite this url using .htaccess如何使用 .htaccess 重写此 url
【发布时间】:2012-10-06 02:16:32
【问题描述】:

我希望它显示网址 /index.php?page=somePage&id=someID&siteAddress=someAddress 作为 /someAddress/?page=somePage&id=someID.

我该如何使用重写规则呢?

【问题讨论】:

  • someAddress 来自哪里?这是siteAddress查询字符串参数的值吗?
  • 修正了更清晰的措辞。 siteAddress 应该等于 someAddress,即两个正斜杠之间提供的值。

标签: .htaccess url mod-rewrite rewrite


【解决方案1】:

在内部将 /someAddress 重写为 /index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^page=([^&]+)&id=([^&]+)$
RewriteRule ^/?([^/]+)/$ /index.php?page=%1%id=%2&siteAddress=$1 [L]

要将/index.php 外部重定向到/someAddress

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=([^&]+)&id=([^&]+)&siteAddress=(^[&\ ]+)
RewriteRule ^ /%3/?page=%1&id=%2 [L,R=301]

【讨论】:

  • 我想在内部重写它,所以我将该代码添加到 .htaccess 中。但是该站点没有显示结果页面。该网站是public.forumzbb.com/test/?page=register&id=null。我应该在页面上看到的是public.forumzbb.com/…。是的,它应该显示为一个简单的“站点未设置”。文本。谢谢你的帮助:)
  • @user1748794 您是否将这些规则放在文档根目录中 htaccess 文件的顶部?你确定 mod_rewrite 开启了吗?您的虚拟主机/服务器配置中是否设置了AllowOverride All
  • 糟糕,谢谢。现在解决了,只是忘了把'RewriteEngine On'也放在文件的顶部。再次感谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 2012-08-13
  • 2020-04-09
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多