我知道有一些关于这方面的文章,但是当我在.htaccess文件中重定向时我是一个新手,所以请原谅我的无知!我尝试过一些东西,但我无法让它发挥作用。
我有旧网址http://domain.com/ourlocations.asp?cat=41&id=41,我正在尝试将.htaccess重定向到http://domain.com/locations。第一个/旧网址通过二维码包含在版画中,所以我有点卡住了。我尝试过使用简单的Redirect 301,但没有运气。我看过一些关于使用RewriteRule的帖子,但我在.htaccess(WordPress)中有现有的代码,并且在它关闭网站时害怕改变。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
有没有人有任何想法?谢谢你的时间。
答案 0 :(得分:1)
此 RewriteRule 应将http://domain.com/ourlocations.asp?cat=41&id=41重定向到http://domain.com/locations。
/ourlocations.asp
?
会删除所有查询参数(如果您希望传递参数,请将其删除)[R=301]
告诉Apache执行301重定向-
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{QUERY_STRING} cat=41
RewriteCond %{QUERY_STRING} id=41
RewriteRule ^ourlocations\.asp http://domain.com/locations? [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 1 :(得分:0)
感谢所有的帮助,最后我们得到了一个解决方案:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^ourlocations\.asp http://domain.com/locations? [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 2 :(得分:-1)
另一种可以解决的解决方案:
# END WordPress
之后添加:
RedirectMatch 301 /index.asp(.*) http://www.domain.com/$1
示例:
www.domain.com/index.asp/string=test&url=22
将重定向到:
www.domain.com/string=test
现在需要在这之后写出301:
RewriteCond %{QUERY_STRING} ^string=test&url=22$
RewriteRule ^$ http://www.domain.com/requiredPage/? [R=301,L]
现在,网址:www.domain.com/index.asp/string=test&url=22
将为301到www.domain.com/requiredPage/