我在我的.htaccess文件中使用以下代码
RewriteRule ^([^/]*)/([^/]*)$ /view_basket.php?order_id=$1&pin=$2 [L]
目标是重定向一个干净的URL,如下所示
http://www.zire20.ir/77438/9512
到这个
http://www.zire20.ir/view_basket.php?order_id=77438&pin=9512
事情是它在我以前的服务器上可以正常工作,但是现在我改用了Godaddy主机,但它却无法正常工作!任何的想法 ?
ps:
我的整个.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]
RewriteRule ^([^/]*)/([^/]*)$ /view_basket.php?order_id=$1&pin=$2 [L]
很多照片没有加载!
当前规则的问题是您无条件重写。包含单个斜杠的所有URL都将被重写。我想象您的某些(静态)照片URL与此模式匹配。
通常的做法是仅在URL与现有文件(或目录)不匹配时重写URL:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ /view_basket.php?order_id=$1&pin=$2 [L]
这样可以确保仅针对不存在的文件(而不是文件或目录)重写请求。我还对模式进行了更严格的限制,因此在斜杠(+
)之前和之后必须有1个或多个字符,而不是0个或多个(*
)。
事情是在我以前的服务器上工作的
除非以前的服务器上的URL结构不同,否则我看不到这是怎么可能的?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句