301带有值的URL重定向

时间:2014-09-29 14:30:10

标签: apache .htaccess mod-rewrite redirect

我需要有关网址重定向的帮助

我想设置一个联盟网址,例如localhost/mysite/bussname/proname,当观看者看到此链接并点击它时,它会重定向到

localhost/mysite/mypage.php?bussinessname=bussname&productname=proname

我已经使用了这段代码

Redirect 301 localhost/mysite/bussname/pagname localhost/mysite/mypage.php?bussinessname=bussname&productname=proname

它会导致内部服务器URL。

那么,htaccess中可能的代码是什么。请帮助我,谢谢你以前。

2 个答案:

答案 0 :(得分:0)

尝试类似:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mysite/([^/]+)/([^/]+)$ /mysite/mypage.php?bussinessname=$1&productname=$2 [L,QSA]

您需要确保在文档根目录的服务器配置中有AllowOverride FileinfoAllowOverride All,并且已加载mod_rewrite。然后规则需要进入文档根目录中的htaccess文件。

如果您的网页内容中包含相关链接,则可能需要将其更改为绝对网址或将其添加到网页标题中:

<base href="/mysite/"  />

答案 1 :(得分:0)

如果您希望用户看到新网址,则应使用重定向:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^mysite/([^/]+)/([^/]+)$ /mysite/mypage.php?bussinessname=$1&productname=$2 [R=301,L]

否则,如果您不希望他们看到新网址,您应该使用重写:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^mysite/([^/]+)/([^/]+)$ /mysite/mypage.php?bussinessname=$1&productname=$2 [L]

这两个代码都应放在webhost根目录下的.htaccess文件中,该文件应以行RewriteEngine ON

开头