所以我有一天在我的服务器上摆弄,从mods-available文件夹中删除了mod_rewrite,而不是mods-enabled文件夹。 有没有一个地方,我可以下载丢失的文件,以重新安装? 我试过谷歌,但所有的结果只是为了启用mod_rewrite和编写重写规则。 也许我应该尝试这样的: sudo apt-install apache –reinstall ?? 谢谢。 🙂
我遇到了一个意外的情况,Apache给了我一个404错误,而不是让mod_rewrite处理path,当一个百分比编码的path部分本身是一个HTTP URL。 例如“GET / myfolder / http%3A%2F%2Flocalhost%2Fnotify HTTP / 1.0” 我在/myfolder/.htaccess文件中有一个非常简单的规则,它将/ myfolder /中的文件中的所有内容发送到脚本。 它可以很好地处理其他百分比编码的值,但在这种情况下,Apache从不处理.htaccess文件中的RewriteRule。 我可以将该值作为解决方法进行双重编码,但似乎Apache仍然应该处理mod_rewrite阶段。 我打算只将URL作为脚本的input参数。 这里是/ irfolder/.htaccess中的(ir)相关的mod_rewrite指令: RewriteCond %{REQUEST_FILENAME} !-s RewriteRule .* ./script-the-world.php 重写规则不被处理。 在服务器configuration我有RewriteLogLevel 5等,尾-f /var/log/http/rewrite.log显示/ myfolder /正在被重写的所有我的请求…除了上面提到的一个。 我的意思是说在上面的特例中有内在的事情发生,但我不知道它是什么。 我希望有人可能知道另一个模块正在干扰我正在努力完成的任务。 这是Apache 2.2.16。
我有一个Apache服务器使用mod_proxy_ajp有Jboss / Tomcat5.5处理所有请求。 这里是我如何configurationApache 2.2.17,并在大多数情况下,它的工作原理: # Proxy pass all work to Tomcat, mod_jk 1.2.31 <Location /> # ProxyPass / http://localhost:8080/ ProxyPass ajp://localhost:8009/ ProxyPassReverse ajp://localhost:8009/ </Location> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} # and , to handle the redirect of the root dir Redirect permanent / https://%{HTTP_HOST}%/myapp 不幸的是, 虽然启用了ProxyPass ,但我无法获得任何mod_rewrite规则的工作,除了上面的。 我该如何处理这种情况? 我试图创build一个类似于这个RedirectMatch规则的重写规则(只有当我closuresProxyPass时才起作用): RedirectMatch ^/(?i)myagency […]
我们希望提供一个图像,因为apache非常擅长,当客户端请求缩略图时,请求将如下所示:[ http://host/photos/im/image_w200.jpg] (w200是请求缩略图的宽度)。 有时缩略图不会存在。 当它们不存在时,我们希望apache将请求转发给我们的应用程序。 该请求看起来像[ http:// host / create_thumbnail?file = image_w250.jpg] 。 该应用程序将创build缩略图,并redirect回原始请求。 当我在/ home / dev / x / y / mediadir中有正常的文件和目录时,这工作正常。 但是/ home / dev / x / y / mediadir / photos现在是/ home / dev / photos目录的符号链接。 所以,现在,即使文件存在,它总是通过!-f RewriteCond并重写缩略图。 我已经尝试过的事情: 服务器可以访问符号链接。 当我拿出重写块时,它工作正常 我试过!-l,!-F和!-U。 !-U在文件存在时提供服务,但当文件不存在时,apache不会重写请求。 !-l,!-F和!-f做同样的事情 任何人有任何build议? <VirtualHost *:443> #… cut … […]
我使用的是Apache 2.2,并提供一个网站,它的一些内容移动到不同的目录。 有没有一种方法来对.htacces文件进行某种重写规则,如果请求的文件(无论是php还是jpg或其他)都不存在,要预先指定一个目录名并重试? 例如: 如果请求URL是a / b / c.jpg并且不存在, 尝试在/old/a/b/c.jpg中search。 谢谢!
所以我试图写一个mod_rewrite规则,将我的主域上的所有内容发送到子域。 例如,redirect http://example.com/1/2/3/4/5?n=6&i=7 至 http://sub.example.com/1/2/3/4/5?n=6&i=7 以下是我到目前为止: RewriteEngine On RewriteCond ^http://www\.example.com\/ [NC] RewriteRule ^(.*)$ http://sub.example.com/$1 [R=301,L] 但它似乎并没有工作。 有小费吗?
我想在我的lighttpd服务器上使用Shaun Inman的url缩写,他使用.htaccess文件进行redirect。 我不是很好Mod_Rewrite不是第一个地方,否则一些简单的谷歌search将足以将其转换为lighttpd。 实际上,我不知道Mod_Rewrite的第二行和第三行在做什么,所以我不能转换。 我会很感激任何人的意见,所以我可以让它工作。 谢谢! <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) index.php?token=$1 [QSA,L] </IfModule>
我使用以下configuration: RewriteEngine On RewriteMap url-rewrite prg:/usr/bin/url-rewrite RewriteRule ^(.*)$ ${url-rewrite:%{HTTP_HOST}$1} [P] 但有时重写的URL会混淆: 127.0.0.1 – – [30/Jun/2011:15:12:37 +0300] [localhost…] […] (5) map lookup OK: map=url-rewrite key=localhost/1.gif -> val=http://127.0.0.1:8080/path/2.gif url-rewrite脚本仅添加path段,但不会更改文件的名称。 我期望val = http://127.0.0.1:8080/path/1.gif 。 这导致用户实际上得到错误的图像文件。 注意:如果你想得到像上面这样详细的debugging日志(有性能影响),使用: RewriteLog /path/to/file.log RewriteLogLevel 9
我需要我的自定义htaccessredirect的帮助。 这些是我的htaccess规则: # AddHandler application/x-httpd-php .php .htm RewriteEngine on # 301 redirect to domain without 'www.' RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L] RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC] RewriteCond %{REQUEST_FILENAME} !/www\.mydomain\.com/public/www/ RewriteRule ^(.*)$ /public/www/$1 [L] RewriteCond %{HTTP_HOST} ^(www\.)?cms\.mydomain\.com$ [NC] RewriteCond %{REQUEST_FILENAME} !/cms\.mydomain\.com/public/core/ RewriteCond %{REQUEST_FILENAME} !/cms\.mydomain\.com/tmp/ RewriteRule ^(.*)$ /public/core/$1 [L] 所以从主目录的一切都redirect到公共/ …是否有可能不redirect在主目录中的一个目录? […]
当我通过https访问我的网站时,Firefox要求允许我的networking主机的证书,然后我被redirect到我的网页主机的索引页面。 我没有要求我的networking主机提供我的https所以我想任何请求httpsredirect到http 。 我已经尝试了这些不同的方法,但Firefox仍然要求证书批准,然后redirect到我的虚拟主机的索引页面。 我的虚拟主机启用了Mod_rewrite(apache 2.2),但是这些行不起作用: 我怎样才能redirect到我的网站,而不是我的networking主机? (端口80和443打开。) RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://www.mydomain.org/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.mydomain.org/$1 [R=301,L] RewriteCond %{SERVER_PORT} 443 RewriteRule ^(.*)$ https://www.mydomain.org/$1 [R=301,L]