先大体说一下意思:公司网站打算改版,但是一些对应的url也需要做调整,而这些url我们是通过httpd.ini配置文件来做的。
问题就来了。就是如何来保证网站改版后,之前的url能正常打开,而对之前的url重新做的重写也能正常访问,也就是说
现在一个真实的url,我用2个重写后的路径都可以访问。之前的url重写规则是这样子的:
httpd.ini配置文件里德:
RewriteRule ^/fangwu/fangwu_(\d+)\.html /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
这样子访问,重写后的url为/fangwu/fangwu_1.html打算改版后,url变更为:/fangwu/pn1/
也就是分页的时候,全部用目录来做,而不是之前用单页也重写了。
我现在的解决方案是:
对一个url做了2个正则来分别匹配:如下
RewriteRule ^/fangwu/fangwu_(\d+)\.html /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
RewriteRule ^/\w*/\w*_(\d+)/ /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
但是如果这样子的话,httpd.ini配置文件的代码量会增大一倍,所以担心网页访问时的打开速度。
于是,考虑用正则的“交替选择”匹配。便有了如下的代码:
(/fangwu/fangwu_(\d+)\.html)|(/\w*/\w*_(\d+)/)
这段代码在正则表达式测试工具里测试,匹配是没有问题的,但是放httpd.ini里却不行了,访问的时候就报错。
不清楚问题出在哪里,望指教 ~
问题就来了。就是如何来保证网站改版后,之前的url能正常打开,而对之前的url重新做的重写也能正常访问,也就是说
现在一个真实的url,我用2个重写后的路径都可以访问。之前的url重写规则是这样子的:
httpd.ini配置文件里德:
RewriteRule ^/fangwu/fangwu_(\d+)\.html /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
这样子访问,重写后的url为/fangwu/fangwu_1.html打算改版后,url变更为:/fangwu/pn1/
也就是分页的时候,全部用目录来做,而不是之前用单页也重写了。
我现在的解决方案是:
对一个url做了2个正则来分别匹配:如下
RewriteRule ^/fangwu/fangwu_(\d+)\.html /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
RewriteRule ^/\w*/\w*_(\d+)/ /fangwulist\.aspx\?flid=0&fl=1&dq=1&page=$1
但是如果这样子的话,httpd.ini配置文件的代码量会增大一倍,所以担心网页访问时的打开速度。
于是,考虑用正则的“交替选择”匹配。便有了如下的代码:
(/fangwu/fangwu_(\d+)\.html)|(/\w*/\w*_(\d+)/)
这段代码在正则表达式测试工具里测试,匹配是没有问题的,但是放httpd.ini里却不行了,访问的时候就报错。
不清楚问题出在哪里,望指教 ~
解决方案 »
- Request Entity Too Larger, upload error 413 ,flashupload
- AJAX
- 怎么做在线支付功能?
- 报表的表头里需要画斜线,有没有什么方法?
- 初学.NET,从List.aspx到Update.aspx更新后,返回到原来页码的问题
- gridview 和checkbox的问题
- 初学者问题,关于VS2005中Asp.NET的namespace问题
- 如何让页面不随浏览器大小改变而改变?
- 在框架里左边页中的TreeView设置了结点属性NavigatUrl怎么只能在当前页打开
- DataGrid里面的连接为什么不是手?
- using(SqlConnection conn = new SqlConnection(CONNSTRING))的用法
- 关于字符串截取的问题
正则如下:
^/fangwu/fangwu_(\d+)(\.html|/)$
同样是用正则做的交替选择,不清楚为什么下面的正则表达式为什么就不能匹配:
/fangwu/fangwu_(\d+)\.html)|(/\w*/\w*_(\d+)/
有朋友知道是什么原因的话,望指教~