当网址相似时,网址会重定向到错误的位置

时间:2018-03-27 07:09:45

标签: .htaccess url-rewriting

以下是 .htaccess 文件的一部分。

RewriteEngine On
RewriteBase /example/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteRule tilaukset home.php?page=orders
RewriteRule tilaustenhallinta home.php?page=ordersManage
RewriteRule jarjestelmaraportit home.php?page=ordersReports
RewriteRule kaikki-tilaukset home.php?page=allOrders
RewriteRule keskeneraiset-tilaukset home.php?page=inProgressorders
RewriteRule valmiit-tilaukset home.php?page=completedOrders
RewriteRule tuotannossa-tilaukset home.php?page=inProductionorders
RewriteRule lahetetyt-tilaukset home.php?page=shippedOrders

点击此元素<a href="tilaukset">Tilaukset</a>,它会重定向到正确的位置(即orders.php ),但当我点击另一个包含不同属性<a href="kaikki-tilaukset">Kaikki tilaukset</a>的链接时,它仍会打开同一个文件。当我从“ Kaikki tilaukset ”中删除“ tilaukset ”时,将其留作“ Kaikki ”。像这样:

RewriteRule kaikki home.php?page=allOrders

它正常工作,没有任何不好的事情发生。出于某种原因,它会检查整个论点。它找到相同的单词,然后使用它。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这一行:

RewriteRule tilaukset home.php?page=orders

表示任何URI包含tilaukset,它也会捕获kaikki-tilaukset

将其更改为:

RewriteRule ^tilaukset home.php?page=orders

^意味着从tilaukset开始。

另一条规则:

RewriteRule kaikki-tilaukset home.php?page=allOrders

现在应该可以正常工作。