Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess重写规则,旧URL到新URL_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess htaccess重写规则,旧URL到新URL

.htaccess htaccess重写规则,旧URL到新URL,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,有一点帮助别人 我现在拥有的(基于我用于不同类型URL的一些代码) 我希望第一个URL重定向到第二个URL,之后不包含任何查询字符串 这就是我到目前为止必须做的 RewriteRule ^(page.php?id=missionstatement+)/?$ http://example.com/why/mission-statement [R=301,L] RewriteRule ^(page.php?id=ofsted+)/?$ http://example.com/how/ofsted-re

有一点帮助别人

我现在拥有的(基于我用于不同类型URL的一些代码)

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

这就是我到目前为止必须做的

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]

试一试:

#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>
#检查模块重写是否启用
#启用修改重写
重新启动发动机
#设置工作目录
重写基/
#强制尾部斜杠
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_URI}!(.*)/$
重写规则^(.*)$$1/[R=301,L]
#bootstrap index.php
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^page.php\?id=(.*)$http://www.willans.com/page.php/$1[R=310,L]
#结束mod重写检查
我已经有一段时间没有做任何web开发了,但这至少应该是朝着正确的方向推进;)

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

  • 此规则旨在放置在网站根文件夹的.htaccess中。如果放在其他地方,可能需要一些小的调整

  • 我使用了
    %{HTTP\u HOST}
    ——这将重定向到与请求的URL相同的域。如果必须使用不同的域名,请用确切的域名替换

  • 新URL末尾的
    将删除现有的查询字符串


  • 这是错误的——RewriteRule不适用于这样的查询字符串。你能告诉我这个URL以及它应该如何被重定向(从URL=>到URL)吗?因为你在规则中加入的一些“字符”让我很困惑。=>呜呜。谢谢你的解释。
    RewriteCond %{QUERY_STRING} ^id=whatever
    RewriteRule ^page\.php$ http://%{HTTP_HOST}/how/somehow? [R=301,L]