首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess重写规则,旧URL改为新URL

htaccess重写规则,旧URL改为新URL
EN

Stack Overflow用户
提问于 2011-09-29 16:47:02
回答 2查看 1.3K关注 0票数 0

给大家一点帮助吧。

我目前所拥有的(基于我用于不同类型的URL的一些代码)。

我希望第一个URL重定向到第二个,之后不包含任何查询字符串

到目前为止,这就是我要做的。

代码语言:javascript
复制
RewriteRule ^(page.php?id=missionstatement+)/?$ http://example.com/why/mission-statement [R=301,L]
RewriteRule ^(page.php?id=ofsted+)/?$ http://example.com/how/ofsted-report [R=301,L]
RewriteRule ^(page.php?id=governingbody+)/?$ http://example.com/governors [R=301,L]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-29 17:39:21

以下是规则(将重定向1个URL):

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} ^id=whatever
RewriteRule ^page\.php$ http://%{HTTP_HOST}/how/somehow? [R=301,L]

  1. 此规则旨在放置在网站根文件夹的.htaccess中。如果放置在其他地方,可能需要进行一些小的调整。
  2. 我已经使用了%{HTTP_HOST} --这将重定向到与请求的URL相同的域。如果域名必须不同,请将其替换为确切的域名。
  3. 新URL末尾的?将删除现有的查询字符串。
票数 2
EN

Stack Overflow用户

发布于 2011-09-29 17:38:36

哈哈!

试一试:

代码语言:javascript
复制
#check mod_rewrite is enabled
<IfModule mod_rewrite.c>

#enable mod rewrite
RewriteEngine On

#set working directory
RewriteBase /

#force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]

#bootstrap index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page.php\?id=(.*)$ http://www.willans.com/page.php/$1 [R=310,L]

#end mod rewrite check
</IfModule>

我已经有一段时间没有做过网络开发了,但这至少应该是在正确的方向上推动;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7594697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档