我的mod_rewrite
文件中有以下.htaccess
规则:
RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /shopping.php?do=display_product&item_number=$1&d=$2&c=$3&t=$4 [L]
它在网站上运行正常,但我正在根目录下的子目录中处理新的移动版本,并且jquery引导程序的东西不显示。
似乎是将jquery javasript重定向到另一个javascript文件。一世
我认为重写规则只会对shopping.php?
起作用。我测试的页面称为front_page.php
。有谁知道为什么这打破了jquery的东西?
答案 0 :(得分:0)
不,这将重定向任何深度为四个子目录的目录,或者目录中三个子目录深度的任何文件。 shopping.php
是替代品,而非匹配品。
选项1
要限制它,您可以放置更具体的内容以匹配第一个“目录”。它说它是替换中的项目编号,所以如果它只是数字,这将起作用(只匹配所有数字的顶级“目录”):
RewriteRule ^(\d+)/([^/]+)/([^/]+)/([^/]+)/?$ /shopping.php?do=display_product&item_number=$1&d=$2&c=$3&t=$4 [L]
如果项目编号不仅仅是数字,请告诉我格式,可以更新此方法。
选项2
另一种选择是在脚本目录上放置一个例外,因此规则会忽略其中的任何内容:
RewriteCond %{REQUEST_URI} !^/mobile/
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /shopping.php?do=display_product&item_number=$1&d=$2&c=$3&t=$4 [L]
要为顶级目录添加更多例外,只需在规则之前添加更多RewriteCond
行格式相同的行。
选项3
第三个选项是测试顶级目录是否存在,并且只处理该规则,但是我不喜欢它的性能,每次规则运行时都必须轮询文件系统是仅使用匹配的更好,更快的选项。