Htaccess以错误的方式重定向

时间:2015-10-31 22:52:19

标签: php apache .htaccess mod-rewrite redirect

我使用简单的HTAccess重定向规则重定向: -

http://localhost/sell_script/s.php?value=1

http://localhost/sell_script/s/1

当我直接加载http://localhost/sell_script/s.php?value=1时,它运行正常。但是,当我加载http://localhost/sell_script/s/1时,它会再次将我重定向到http://localhost/sell_script/s.php?value=1

这可能是什么问题?

我的htaccess: -

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 

RewriteRule ^s/(.*) sell_script/s.php?value=$1 [R]

2 个答案:

答案 0 :(得分:0)

要明确上述内容,重定向是来自

http://localhost/sell_script/s/1

http://localhost/sell_script/s.php?value=1

不是相反。

如果您的RewriteBase/,则应在规则中加入sell_script

RewriteRule ^sell_script/s/(.*)$ /sell_script/s.php?value=$1 [L,R=301]

另请注意,我添加了L以使规则成为端点,并将重写更改为301代码,该代码更具搜索引擎友好性等。

答案 1 :(得分:0)

我为你写了这个简单的重写。

#ErrorDocument 404 /
RewriteEngine On
#RewriteCond %{SERVER_PORT} 80

RewriteRule ^s/(.+)$ s.php?id=$1 [L,QSA]

这会将s.php?id=1重定向到s/1