.htaccess转到错误的文件,查询丢失

时间:2014-01-27 00:23:15

标签: php apache .htaccess

基本上我最初在另一台服务器上安装了我的网站,并且所有.htaccess都工作正常 - 然后我们将服务器转移到我们的新服务器上,而phpinfo()命令几乎完全按照相同的设置运行。

我们有一个像这样的网址结构;

http://example.org/tag/example+tag

我们的搜索结构具有相同的结构;

http://exampe.org/search?search=search+term

但是,出于疯狂的疯狂原因,当你去标记网址时,它会进入搜索页面。这是我们的.htaccess;

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteRule ^sitemap.xml sitemap.php
RewriteRule ^login login.php
RewriteRule ^register register.php
RewriteRule ^dashboard dashboard.php
RewriteRule ^addserver addserver.php
RewriteRule ^tag/([^/]+)/?$ searchtag.php?tag=$1 [NC,L]
RewriteRule ^search search.php
RewriteRule ^ad/(.*)$ cron_servers_banners.php?server=$1 [L,QSA]
RewriteRule ^list/([a-zA-Z0-9\-]+) list.php?page=$1 
RewriteRule ^edit/(.*)$ serveredit.php?sid=$1 [L,QSA]
RewriteRule ^server/(.*)$ serverpage.php?sid=$1 [L,QSA]
RewriteRule ^server/(.*)/remove$ serverpage.php?sid=$1&remove=yes [L,QSA]
RewriteRule ^server/(.*)/cremove$ serverpage.php?sid=$1&cremove=yes [L,QSA]
RewriteRule ^server/(.*)/favourite$ serverpage.php?sid=$1&favourite=yes [L,QSA]
RewriteRule ^server/(.*)/unfavourite$ serverpage.php?sid=$1&unfavourite=yes [L,QSA]
RewriteRule ^sponsor/(.*)$ sponsor.php?sid=$1 [L,QSA]
RewriteRule ^history/(.*)$ serverhistory.php?sid=$1 [L,QSA]
RewriteRule ^vote/(.*)$ servervote.php?sid=$1 [L,QSA]
RewriteRule ^lost lost.php
RewriteRule ^logout logout.php

1 个答案:

答案 0 :(得分:3)

基本上,您将/tag/sometag重定向到searchtag.php?tag=sometag

RewriteRule ^tag/([^/]+)/?$ searchtag.php?tag=$1 [NC,L]

但是,您有另一个现有规则,即“匹配以搜索开头的任何内容”

RewriteRule ^search search.php

由于search属于searchtag,因此您必须添加尾随/

RewriteRule ^search/ search.php