对SO人员有点帮助。
我目前拥有的内容(基于我用于不同类型网址的一些代码)。
我希望第一个网址重定向到第二个网址,之后不再包含查询字符串
这是我到目前为止所做的事情。
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]
答案 0 :(得分:2)
以下是规则(将重定向1个网址):
RewriteCond %{QUERY_STRING} ^id=whatever
RewriteRule ^page\.php$ http://%{HTTP_HOST}/how/somehow? [R=301,L]
此规则旨在放在网站根文件夹中的.htaccess中。如果放在其他地方,可能需要进行一些小的调整。
我使用了%{HTTP_HOST}
- 这将重定向到与请求的URL相同的域。如果域名必须不同,请将其替换为确切的域名。
新网址末尾的?
将删除现有的查询字符串。
答案 1 :(得分:0)
嗨!
给它一个旋转:
#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>
自从我完成任何网络开发以来已经有一段时间了,但至少应该朝着正确的方向发展;)