我不需要直接访问图像,而需要使用RewriteRule来redirect一组要通过脚本访问的图像。 RewriteRule用于它: RewriteRule ^Images/test/([^.\/]*)\.png /image.php?file=$1.png [R=301,L] 我希望这会改变: www.example.com/ 图片 /test/123.png 成 www.example.com/image.php?file=123.png 但它不这样做。 但是,如果我将RewriteRule更改为以下内容: RewriteRule ^Images2/test/([^.\/]*)\.png /image.php?file=$1.png [R=301,L] 以下工作: www.example.com/ Images2 /test/123.png 成 www.example.com/image.php?file=123.png 不同之处在于Images存在而Images2不存在。 是否有可能使用现有的文件夹。 任何帮助如何获得顶部的例子工作? 更新 :仔细查看mod_rewrite文档后 ,我发现: …请注意,mod_rewrite会尝试通过检查path的第一部分是否存在于文件系统的根目录来尝试猜测您是否指定了文件系统path或URLpath。 看起来,如果path被解释为一个URLpath,它将起作用,如果它被解释为一个文件系统path,它就会失败。
我使用.htaccess,基本身份validation和相应的密码文件来保护我的networking空间。 托pipe是Linux / Apache。 我想支持用法语口音(即不是ASCII)的用户名。 是否支持非ASCII用户名? 密码文件应该使用什么编码(UTF8,Latin-1,…)?
我正在尝试使用核心 – Apache HTTP服务器的<LIMIT>指令来限制spars从POST到我的网站: <Limit POST> Order deny,allow Include /usr/local/apache2/conf/list.acl Allow from all </Limit> 这里是我的list.acl # cat /usr/local/apache2/conf/list.acl | tail -1 Deny from 222.0.0.0/8 # 然而,我得到了500。 任何想法我做错了什么?
我有几个问题,第一个是我的apache2服务器不读取.htaccess 我有像这样的apache2.conf安装程序: # AccessFileName: The name of the file to look for in each directory # for additional configuration directives. See also the AllowOverride # directive. # AccessFileName .htaccess # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # <FilesMatch "^\.ht"> Order allow,deny Deny from all </FilesMatch> […]
我已经尝试了两天将.htaccess转换为nginx重写原始文件如下所示: # Turn on URL rewriting RewriteEngine On RewriteBase // # Protect hidden files from being viewed <Files .*> Order Deny,Allow Deny From All </Files> # Protect application and system files from being viewed RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L] # List of files in subdirectories will not be displayed in the browser Options -Indexes # Allow […]
我想在我的.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 […]
假设我的目标是通过“Mozilla”(firefox)用户代理同时限制访问我的网站的用户数量,是否可以在apache 2.2中执行? 我正在考虑使用以下方面的内容: RewriteCond %{HTTP_USER_AGENT} "mozilla" [NC] 和 MaxClients 0 但是我不知道(如果可能的话)如何使这两个规则一起工作?
Google网站pipe理员工具已通知我有太多重复的url。 有些参数已添加,我不知道,我需要删除它,例如: http://example.com/5454/my-utr.html http://example.com/5454/my_url.html?collcc=3067605522& 这在Google上被标记为重复的url。 我怎样才能阻止?=collcc或使用.htaccess删除它。 或者最好删除只是?collcc=和redirect到正常的URL与.htaccess ? 我知道我可以阻止在robots.txt文件,但我需要干净的url,仍然在谷歌索引,所以我需要删除只是查询collcc 。 我努力了: RewriteCond %{QUERY_STRING} collcc= RewriteRule (.*) http://my-site.com/$1? [R=301,L]
这是我的问题https://serverfault.com/a/761474/77231的扩展 我正在尝试向URL添加一个额外的QUERY STRING参数,并将空格更改为下划线,但没有成功。 而不是简单地改变: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some.machinename.com 至: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some_machinename_com 我试图改变一个额外的参数,如: http://somedomainname.com/grafana/dashboard/db/generic-check?var-device=SF-some.machinename.com&var-check=Check CPU Load 至: http://somedomainname.com/grafana/dashboard/db/generic-check?var-device=SF-some_machinename_com&var-check=Check_CPU_Load 在我以前回答的问题中使用相同的逻辑,我能够得到第一部分工作使用: RewriteCond %{QUERY_STRING} (.*)\.(.*)\.(.*) RewriteRule ^/grafana/dashboard/db/generic-check /grafana/dashboard/db/generic-check?%1_%2_%3 [R=301] 但是,这显然只是让我的第一部分,并出现如下: http://somedomainname.com/grafana/dashboard/db/generic-check?var-device=SF-some_computername_com&var-check=Check%2520CPU%2520Load 我已经添加了一个额外的QUERY_STRING和重写规则,如: RewriteCond %{QUERY_STRING} ^&var-check=(.*)\ (.*)\ (.*) RewriteRule ^&var-check var-check=%1_%2_%3 [R=301] …没有成功。 我也试过把两者结合起来: RewriteCond %{QUERY_STRING} (.*)\.(.*)\.(.*)&(.*)\ (.*)\ (.*) RewriteRule ^/grafana/dashboard/db/generic-check /grafana/dashboard/db/generic-check?%1_%2_%3&%4_%5_%6 [R=301] ..也没有成功,以及使用%20 \s和%2520而不是\和一个空格…以及像\ |\s|%20|%2520这样的pipe道分隔符。 理想情况下,我希望在一次重写中完成这项工作,但是我很乐意让它工作。 任何帮助表示赞赏。