我想在我的.htaccess中添加一个指令,例如,如果浏览器指向包含%E4 (?)的URI或任何其他特殊字符,则.htaccess自动将%E4 (?)重写为%C3%A4 ä )。 总之,我想.htaccess将Win-1252百分比编码转换为UTF-8百分比编码。 我知道我可以通过添加一系列的mod_rewrite规则来做到这一点 – 但我想知道是否有一个本地.htaccess指令,将照顾到这一点。 ==== 这是迄今为止我自己已经得到的(我在.htaccess中的条目比在下面的列表中有更多的条目,但是为了示例目的,我已经删减了列表以供参考): RewriteRule ([^\ä]*)\ä([^\ä]*\ä[^\/]*)(\/[.*])? $1%C3%A4$2$3 [N] RewriteRule ([^\ä]*)\ä([^\ä]*)$ http://www.domain.com/$1%C3%A4$2 [NE,R=301] RewriteRule ([^\é]*)\é([^\é]*\é[^\/]*)(\/[.*])? $1%C3%A9$2$3 [N] RewriteRule ([^\é]*)\é([^\é]*)$ http://www.domain.com/$1%C3%A9$2 [NE,R=301] RewriteRule ([^\î]*)\î([^\î]*\î[^\/]*)(\/[.*])? $1%C3%AE$2$3 [N] RewriteRule ([^\î]*)\î([^\î]*)$ http://www.domain.com/$1%C3%AE$2 [NE,R=301] RewriteRule ([^\ö]*)\ö([^\ö]*\ö[^\/]*)(\/[.*])? $1%C3%B6$2$3 [N] RewriteRule ([^\ö]*)\ö([^\ö]*)$ http://www.domain.com/$1%C3%B6$2 [NE,R=301] RewriteRule ([^\ü]*)\ü([^\ü]*\ü[^\/]*)(\/[.*])? $1%C3%BC$2$3 [N] RewriteRule ([^\ü]*)\ü([^\ü]*)$ http://www.domain.com/$1%C3%BC$2 [NE,R=301] 有人知道吗: 1)我怎样才能整理这个? 2)如果URI中有多个特殊字符(单个或多个),则不起作用。 有没有什么简单的方法来确保规则将处理多个特殊字符?
我有一个PHP的Nginx Web服务器设置,我想在Nginx上移动,我想将这些.htaccess规则转换为nginx.conf文件: RewriteRule ^blog(|/)$ /data/core/site/blog.php RewriteRule ^blog/post(|/)$ /data/core/site/blogpost.php 到目前为止,这是我的: location /blog { rewrite ^(.*)$ /data/core/blog.php last; } 但是,如果我访问该页面( http://example.com/blog ),它给我的文件下载,我想它服务器的PHP和显示内容,我将如何解决这个问题? 完整的Nginxconfiguration:(在Windows上使用Winginx软件包): server { listen 127.0.0.1:80; server_name localhost; root home/localhost/public_html; index index.php; log_not_found off; #access_log logs/localhost-access.log; charset utf-8; location ~ /\. { deny all; } location = /favicon.ico { } location = /robots.txt { } location […]
我需要代理一些远程API https://example.com/api/ 可以在本地访问http://localhost/api/ 我试图把这一行放在httpd.conf : ProxyPass /api/ https://example.com/api/ 我已经检查了这些模块是否启用: ssl_module, proxy_module, proxy_http_module 当我试图达到http://localhost/api/ ,我得到500内部服务器错误,而我在error_log看到的是: [Wed Jan 14 16:42:04.788401 2015] [proxy:warn] [pid 21916] [client ::1:59260] AH01144: No protocol handler was valid for the URL /api/v1/ads. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. […]
我想在proxy_balancer后面有两个tomcat服务器,所以我可以进行滚动部署。 我有这个工作,所以我可以取下一个tomcat,另一个采取futire请求 <Proxy balancer://production> BalancerMember http://10.10.10.111:8080 route=s1 BalancerMember http://10.10.10.112:8080 route=s2 ProxySet stickysession=ROUTEID </Proxy> ProxyPass /services balancer://production/services Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED 我现在想要做的就是取下一台服务器,然后从平台pipe理器的池中取出。 然后,当我升级并使服务器启动并运行时 – 在返回到池之前,我希望能够访问它,以便在返回到池之前进行检查。 例如 ProxyPass /sanity_check http://10.10.10.111:8080/services 但这不会工作,因为服务器redirect到/服务,并通过平衡器。 我可以做一个单独的域名,但要避免这一点。 我想基于一个URL参数设置一个cookie可能工作,但很难做。 有一些function可以轻松实现吗? 例如在HAProxy我可以做到这一点 use-server tomcat_01 if { path_end TOMCAT_01 } use-server tomcat_02 if { path_end TOMCAT_02 }
我的问题是,长的PHP脚本(几个小时)正在退出提前。 (FireFox表示“加载页面时,服务器的连接重置”)。 有时在30分钟后退出,有时在1小时45分钟后退出。 CentOS 6.6 64bit Apache 2.2.9 MPM worker php 5.5.20 mod_fcgid 2.3.9 没有安装操作码caching cPanel和WHM 11.46 我有root权限 对于FastCGI,我通过WHM包含编辑器将以下内容包含到httpd.conf中以post_virtualhost: <IfModule mod_fcgid.c> FcgidBusyTimeout 86400 FcgidIOTimeout 86400 </IfModule> 之后,IfModule节我有<目录path/到/ mysite>部分(“<”之后没有空格)。 我在脚本中多次使用set_time_limit()和ignore_user_abort()来保持运行。 在Apache错误日志中没有任何东西。 phpinfo: http ://lot-art.com/info.php(你可以看到set_time_limit()和ignore_user_abort()的作品) 它在我的旧服务器上运行正常,运行mod_php: http : //216.119.148.91/info.php
我正在使用Apache HTTPD代理本地Tomcat服务器: ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ 一切工作正常,除非我有一个302redirect。 出于某种原因,ProxyPassReverse不会重写localhost:8080,客户端将被redirect到localhost:8080,从而导致浏览器错误。 我怎样才能得到ProxyPassReverse 302redirect工作?
偶尔我翻阅我们的(apache)访问日志,我经常碰到试图钓鱼pipe理页面的人。 例如,他们试图访问页面,如: /wp-login.php /administrator/index.php /admin.php /user 这些页面/目录都不存在,因为它们从来没有,或者我已经把它们重新命名为不太明显的东西。 那么,人们是否积极地阻止了这种要求呢? 我有时候会这么做,但是我得到了很多,而且我想知道它是否会有所不同。 目前我阻止在我的httpd.conf文件中的主机或IP。 我担心什么都没有? (仅供参考 – 在基于'linux'的服务器上运行Apache)。 编辑:从“子企业”(中小企业水平)的angular度来看。
我已经configuration我的Apache这样的: <VirtualHost *:80> ServerName www.th3falc0n.de ServerAlias th3falc0n.de *.th3falc0n.de DocumentRoot /var/www/html/th3falc0n <Directory /var/www/html/th3falc0n> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.lolhens.org ServerAlias lolhens.org *.lolhens.org DocumentRoot /var/www/html/lolhens <Directory /var/www/html/lolhens> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 我在/ var / www / html […]
我想阻止networking爬虫使用configuration为将所有请求转发到ProxyPass的apache站点。 我已经尝试过BrowserMatchNoCase指令来设置一个环境variablesblock_spider。 当我在我的networking浏览器中更改我的用户代理以伪装成search机器人时,它仍然允许我访问该网站。 BrowserMatchNoCase "^bingbot" block_spider BrowserMatchNoCase "^msnbot" block_spider <Proxy *> Order deny,allow Deny from env=block_spider Allow from all </Proxy> RewriteEngine On RewriteOptions Inherit
我为新的服务器设置了SSL,并closures了如何在之前的服务器上进行configuration。 我注意到我有SSLCertificateFile , SSLCertificateKeyFile和SSLCertificateChainFile指定在两个不同的地方。 我把它放在我的ssl.conf文件里(这个文件包含在httpd.conf文件中),而且我也在httpd.conf文件中的<VirtualHost *:443>块中。 我是否需要这两个地方的这三个设置,或者只是一个足够的? 对一个和另一个有什么性能影响?