我正在创建像:
这样的网址http://domain.com/app/的 clientID的 /控制器/ 要么 ../应用程序/的 clientID的 /filename.ext
我需要从网址中删除字母数字clientID。
我目前的htacces是:
RewriteRule ^ app /([a-z0-9] +) /(。)$ / app / $ 2 [NC,L]
它通过了htaccess测试人员,但我在网上得到了404错误。
示例:http://domain.com/app/gmcpoujth7/js/fancybox/jquery.fancybox-1.3.4.pack.js
我做错了什么?
答案 0 :(得分:0)
这是一个双面问题。
clientID
为了使其工作,您还需要添加重写脚本来告诉您的文件访问文件的位置。这有点棘手,可能需要比htaccess
更多的工作。
由于网址正在被重写和重定向,因此您需要通过某种方式将该网址重定向到当前的clientID
。这是棘手的部分。您可以添加以下行来设置cookie:
RewriteRule ^app/([a-z0-9]+)/(.)$ /app/$2 [co=clientID:$1:.yourserver.com:7200:/,NC,L]
然后在第二个调用中,您将执行如下所示的本地重写:(未测试)
RewriteCond %{HTTP_COOKIE} ^.*clientID=([a-z0-9]+).*$ [NC]
RewriteRule /app/$ /app/$1/$2 [QSA]
这不是一个完整的答案,因为如果有人只是前往:http://domain.com/app/js/fancybox/jquery.fancybox-1.3.4.pack.js而没有先找到clientID
的网址,服务器可能不知道在有多个网址的情况下将其发送到哪里clientID
。最好的办法是保持clientID
完好无损。