我在.htaccess文件中使用以下代码
RewriteRule ^([^/]*)/([^/]*)$ /view_basket.php?order_id=$1&pin=$2 [L]
目标是重定向一个干净的网址,如下所示
http://www.zire20.ir/77438/9512
到这个
http://www.zire20.ir/view_basket.php?order_id=77438&pin=9512
事情是它在我以前的服务器上工作,但现在我改为godaddy托管,它不工作!任何想法?
p.s:
我的整个.htaccess文件如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^zire20.ir [NC]
RewriteRule ^(.*)$ http://www.zire20.ir/$1 [L,R=301]
RewriteRule ^([^/]*)/([^/]*)$ /view_basket.php?order_id=$1&pin=$2 [L]
答案 0 :(得分:1)
RewriteRule ^([^/]*)/([^/]*)$ /view_basket.php?order_id=$1&pin=$2 [L]
很多照片都没有加载!
您当前规则的问题在于您无条件地重写 。任何包含单个斜杠的URL都将被重写。我想你的一些(静态)照片网址符合这种模式。
通常的做法是,只有在与现有文件(或目录)不匹配时才重写URL:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ /view_basket.php?order_id=$1&pin=$2 [L]
这确保仅针对不存在的文件(不是文件或目录)重写请求。我也使模式更具限制性,因此在斜杠(+
)之前和之后必须有1个或更多个字符,而不是0或更多(*
)。
事情是它在我以前的服务器上工作
我看不出这是怎么可能的,除非以前的服务器上的URL结构不同?