我设法得到这个工作了一段时间,但返回到CakePHP项目,我已经开始看起来,无论我最近对Nginx(或者最近的更新)所做的任何更改已经打破了我的重写规则。 目前我有: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.php index.html index.htm; } location /basic_cake/ { index index.php; if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/basic_cake/(.+)$ /basic_cake/index.php?url=$1 last; break; […]
我有一个这样设置的重写规则: RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI} -f RewriteRule ^(.*)$ cache/$1 [QSA,PT,L] 这个规则的简单解释:它检查在caching目录中是否存在请求的文件。 如果是这样,那么它就提供caching目录。 例如, http://somehost.tld/about.html的请求将从http://somehost.tld/cache/about.html提供 (如果此文件存在)。 我关心的是如果RewriteRule不安全。 是否有人可以像这样请求一个URL,用双重句点来移动一个目录: HTTP://somehost.tld/../../private_file.txt 所以导致private_file.txt从我的apache公共文件夹上的目录服务?
我正在build立一个网站(理想情况下),允许用户访问其他用户的网页,其格式为“www.mysite.com/ThisLanham”,其中“ThisLanham”是用户名。 用户名以字母开头,可以由任意字母数字字符和下划线,连字符或句点组成。 到目前为止,当我忽略使用周期字符时,redirect已经完美运行。 以下代码处理该请求: RewriteRule ^([a-zA-Z][0-9a-zA-Z-_]*)/?$ Page/?un=$1 [NC,L] 不过,我已经尝试了很多方法来检查期间,但都导致500内部服务器错误。 以下是我的一些尝试: RewriteRule ^([a-zA-Z][0-9a-zA-Z-\_\\.]\*)/?$ Page/?un=$1 [NC,L] RewriteRule ^([0-9a-zA-Z-\_\\.]\*)/?$ Page/?un=$1 [NC,L] RewriteRule ^([a-zA-Z].\*)/?$ Page/?un=$1 [NC,L] RewriteRule ^(.\*)/?$ Page/?un=$1 [NC,L] 也试过… RewriteCond $1 != index.php RewriteRule ^([az][0-9a-z-_.]*)/?$ Page/?un=$1 [NC,L] 我的备份计划不再允许用户在他们的用户名中包含句点,但是我更愿意find一个解决scheme。 有任何想法吗?
我正在用Tuckey重写器重写TomCat上的传入url请求: <rule> <from>/OutputFile?sourceArticleId=([0-9]+)</from> <to>/app/clipping/get/$1</to> </rule> “?” 问号不符合正则expression式模式。 我怎样才能正确地逃避它呢或者什么是正确的解决scheme呢?
现在正常的SQL(ite)语法转换成兼容的MS服务器语法正在让我发疯。 我的代码似乎是由MoMA判断的单声道兼容性。 然而,在global.asax中,我开始在Application_Start中使用多个线程作为服务和过多的url重写在Application_BeginRequest(一切都重写到default.aspx调用C#代码/类在URL上)。 url没有扩展名,或者我的url有错误,例如mysite.com/username/page/title.lol – id 我需要这一切去BeginRequest。 我也需要文件可下载。 通常path将被重写为/file/user/filename到/file/u/s/user/file 。 这将支持Linux +单声道+一个很好的networking服务器?
即时通讯使用IIS7与URL重写模块,我不能让它正常工作。 该规则在web.config中看起来像这样 <rewrite> <rules> <rule name="Redirect to new enviroment" stopProcessing="true"> <match url="default.aspx" /> <action type="Redirect" url="http://www.example.se/play?id={C1}" appendQueryString="false" redirectType="Permanent" /> <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> <add input="{QUERY_STRING}" pattern=".*id=(.*)&.*" /> </conditions> <serverVariables> </serverVariables> </rule> </rules> </rewrite> 并在url是http://www.example2.se/player/default.aspx?id=37185&metadatalanguageId=1 结果是我被redirect到http://www.example.se/play?id= 所以ID(37185)从结果中丢失。 当我在IISpipe理器中使用testing模式时,它看起来没问题,并说后向引用{C:1}应该包含id。 我错过了什么? 我曾尝试使用“失败的请求追踪规则”,但一切看起来应该工作。
我有一个运行在444端口上的SSL。 我需要重写所有URL /请求开始https://服务器名称 (这是默认端口443)到https://服务器名称:444 。 我有这样的规则.htaccess: RewriteCond%{SERVER_PORT} = 443 RewriteRule ^(。*)$ https://% {SERVER_NAME}:444%{REQUEST_URI} 这不起作用。 要检查条件,我改变了条件的端口为RewriteCond %{SERVER_PORT} = 80 ,所有HTTP请求都被强制为HTTPS。
我有一个运行Apache的网站,它包含多个VHOSTS。 我没有select设置多个IP地址的机器,但我想有某种方法通过SSL以某种方式访问每个VHOST。 有没有办法做到这一点? 我想我不能指望https:// realhttps , https:// vhost1和https:// vhost2工作,但有没有一种简单的方法来configurationmod_rewrite,以使https:// realhttps / vhost1从http: // vhost1和https:// realhttps / vhost2从http:// vhost2获取内容?
我想将http://site.com/redirect到http://site.com/url 。 什么是最简单的方法来做到这一点? 我试着编辑httpd.conf和redirect命令。 它没有奏效。 此外,我尝试使用重写命令启用站点上的文件。 另外,它没有工作。 启用网站的示例configuration: RewriteEngine On RewriteRule /.* http://site.com/url [R]
我正在构build一个基于OpenLayers的地图应用程序,它使用GeoServer来提供地图数据。 我遇到的问题是,除了通过WMS请求的地图图像外,我使用jQuery AJAX从GeoServer获取信息。 由于GeoServer运行在不同的端口,因为JavaScript中的跨站点脚本安全策略,我的请求被阻止。 作为Java应用程序, GeoServer在端口8080上运行在Apache上,而我的IIS实例在端口80上运行 。 我决定在IIS7中使用URL重写来解决这个问题,而不是build立一个代理。 我遵循这个指南 ,但它仍然不工作。 这是我的URL重写规则设置: 匹配url : (.*) 条件 : {HTTP_URL}匹配/geoserver 操作 :重写为http://localhost:8080/{R:1} ,附加查询string 当我请求http://localhost/geoserver/wms?QUERY_LAYERS=SanDiego:FWSA_sandiego&LAYERS=SanDiego:FWSA_sandiego&SERVICE=WMS&VERSION=1.1.1&FEATURE_COUNT=20&REQUEST=GetFeatureInfo&EXCEPTIONS=application/vnd.ogc.se_xml&BBOX=-13009123.590156,3862057.2905992,-13006066.109025,3865114.7717302&INFO_FORMAT=text/html&x=20&y=20&width=40&height=40&srs=EPSG:900913然而,我得到的只是一个404,尽pipe8080端口上的相同请求返回了正确的结果。 我究竟做错了什么? 提前致谢。