我必须将我的所有asp页面重定向到用PHP开发的新网站。
我有我的asp页面,
abc.asp?id=82
哪个需要重定向到
siteurl/index.php/abc
任何人都可以在HTAccess中帮助我吗?
我试过了,
Redirect 301 /abc.asp?id=82 siteurl/index.php/abc
rewriterule ^/abc.asp?id=82$ siteurl/index.php/abc[R=301,L]
但这不起作用并给我404错误。
答案 0 :(得分:2)
您无法与Redirect
或RewriteRule
中的查询字符串进行匹配。目前还不清楚你要在这里完成的范围是什么。 id=82
重要吗? abc
是否意味着“任何只是字母”? siteurl
是目录还是域名?如果它严格来说是你所尝试的,那么严格来说它是如何运作的:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=82($|&)
RewriteRule ^/?abc.asp$ siteurl/index.php/abc? [L,R=301]
答案 1 :(得分:1)
你犯了2个主要错误:
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_ROOT
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^id=82(&|$) [NC]
RewriteRule ^(abc)\.asp$ http://domain.com/index.php/$1 [R=302,L,NC]
验证工作后,用301(永久重定向)替换302(临时重定向)
答案 2 :(得分:0)
只需使用
RewriteRule ^abc.asp$ siteurl/index.php/abc [R=301,QSA,L]
那应该可以胜任。使用QSA
标志也可以转发任何GET参数,如果这就是你对标题的意思。