我有一个“简单”的问题,可能会在几秒钟内回答;)我设置了一个Apache Web服务器(V2.2),这个Apache服务器作为平衡与“mod_jk”启用。 该服务器上托pipe了2个不同的应用程序,称为“低”和“高”。 我正在使用的Tomcat服务器是V6.0x服务器。 这里来的Apache httpd.conf(摘要): # Load mod_jk module LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so # Where to find workers.properties JkWorkersFile conf/workers.properties # loadbalancer contains the first application that may be clustered (runs on more tomcat instances/servers) JkMount /high/* loadbalancer # webworker contains the second application that runs in a single tomcat instance JkMount /low/* webworker 你可以看到有两个定义的映射。 […]
htaccess的: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php RewriteRule ^site-css/([0-9]+)/(.*)$ ../application/site/$1/design/css/$2 [L] 它返回一个400错误的请求,或者在apache级别: [Thu Jul 22 14:48:32 2010] [error] [client 127.0.0.1] Invalid URI in request GET /site-css/1/layout.css? HTTP/1.1 如果我更改规则,甚至稍微改变一个404错误。 有没有更多的方法来debugging这个问题?
我有一个现有的简单的重写规则,如下所示: <Directory /path> RewriteEngine on RewriteBase / # if the requested resource does not exist RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # route the uri to a front controller RewriteRule ^(.*)$ index.php/$1 [L] </Directory> 这工作正常,但我想做两件事情之一。 在检测客户端接受语言头的基础上,我也想 (i)将检测到的语言设置为脚本可以使用的环境variables (ii)重写请求,使url以语言代码开始(例如www.example.com/en/some/resource) 在实施(i)方面,我定义了这个规则: <Directory /path> RewriteEngine on RewriteBase / # if the requested resource does not exist RewriteCond %{REQUEST_FILENAME} […]
我有两个版本的在我的Web服务器上运行的非常小的ruby-on-rails应用程序。 一个是外部服务(生产),一个只服务于内部网URL(分段)。 所以我有两个虚拟主机设置,他们工作得很好。 我的目标是为临时服务器的域下的代码库提供生成的文档,但只需设置不同的虚拟主机和文档根,并将所有静态HTML文件转储到那里。 我不清楚如何在httpd.conf中设置。 所以,目标是有: staging.foo.com/ – > rails应用程序虚拟主机(指向/ var / www / rails / foo /) 和 staging.foo.com/doc/ – >文档vhost(指向/ var / www / doc / foo /) 对这个问题的笨拙抱歉, 我很确定这可以用mod_rewrite来完成,但是在阅读完文档之后,我仍然失去了如何完成这个壮举。
请帮我写下nginx重写,而不是Apache htaccess: Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)([^/])$ $1$2/ [R,L] RewriteCond %{ENV:REDIRECT_RDR} ^$ RewriteCond %{HTTP_HOST} ^(.+)\.site\.com$ #RewriteCond %2 !www RewriteCond %{HTTP_HOST} !^www\.site\.com$ RewriteRule ^([a-zA-Z0-9`~!@#$%^&()\-+";=\\/|]*)$ blogs/fake/%2/$1 [L,E=RDR:1] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/urlrewriteprepend.php$ RewriteRule ^(.*)$ /urlrewriteprepend.php [L]
当我使用foo.org时,无法触发RewriteCond%{HTTP_HOST}。 它似乎忽略它,但www.foo.org和sub.foo.org似乎触发重写条件。 我可能错过了一些简单的东西,并希望有一些更有经验的眼睛能够帮助。 <VirtualHost *:80> ServerName foo.org ServerAlias sub.foo.org www.foo.org DocumentRoot /var/www/ RewriteEngine On RewriteCond %{HTTP_HOST} ^www.foo.org$ RewriteRule ^/(.*)$ http://sub.foo.org/$1 [L,R] 我试过这3个设置(replace上面的) RewriteCond %{HTTP_HOST} ^www.foo.org$ RewriteRule ^/(.*)$ http://sub.foo.org/$1 [L,R] # WORKS 🙂 RewriteCond %{HTTP_HOST} ^sub.foo.org$ RewriteRule ^/(.*)$ http://www.foo.org/$1 [L,R] # WORKS 🙂 RewriteCond %{HTTP_HOST} ^foo.org$ RewriteRule ^/(.*)$ http://sub.foo.org/$1 [L,R] # DOESN'T WORK!!! 这对我来说真是令人沮丧,因为它看起来很简单,但我无法弄清楚。 有没有人有任何想法? 所有的DNS条目设置(我可以直接从浏览器访问所有这些网站,只是redirect被打破)。 […]
我在MAMP堆栈上运行Drupal时遇到了一个不寻常的访问问题。 Drupal安装工作正常,所以我知道这不是一个Drupal的问题。 “干净的url”工作正常的单层url的任何事情,但没有2+path水平。 例如: example.com/foo,example.com/bar等。所有的工作都很完美。 example.com/foo/bar,example.com/bar/foo/bar等。不要工作。 我得到一个拒绝(不404)页面,由Drupal服务,与login框和网站名称,但没有主题应用。 (和,是的,我积极login作为pipe理员/用户1);) 如果我禁用“干净的url”,一切正常。 我认为这与我的htaccess中的重写规则有关,但searchnetworking无济于事(包括drupal的网站和irc频道)。 我当前的.htaccess如下所示: # # Apache/PHP/Drupal settings: # # Protect files and directories from prying eyes. <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$"> Order allow,deny </FilesMatch> # Don't show directory listings for URLs which map to a directory. Options -Indexes # Follow symbolic links in this directory. Options +FollowSymLinks # Make Drupal […]
我甚至不确定我是否正确地做这件事,所以我要在这里提出整个问题。 我有一个网站的url看起来像这样: www.example.com/some-random-key/page.php 我像这样redirect: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*?)/(.*?)$ $2?key=$1 这大部分工作。 我的问题是以下两个url最终不等同: www.example.com/my-key www.example.com/my-key/ 第二个示例的行为如预期,redirect到index.php的根级别,并传递“my-key”作为参数。 第一个示例失败,找不到错误。 有没有办法添加一个规则,说if the file isnt found, then fetch index.php?key=$key或者我是从一个错误的angular度来处理?
我有一个简单的.htaccess,由于某种原因无法正确redirect: RewriteEngine on RewriteBase / RewriteRule ^.*$ /test.php [L] 有一个日志条目: [Tue Nov 16 17:04:12 2010] [error] [client 213.141.155.85] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. [Tue Nov 16 17:04:12 2010] [debug] core.c(3053): [client 213.141.155.85] […]
我试图写一个redirect,但作为一个绿色的菜鸟比我更坚强。 我想要的是:在url中没有特定页面的情况下,但是语言被设置,它将redirect到该语言的主页。 首先生病告诉你当前的工作网站的性质和Apache的代码,实现了: / it / somepage很好/ somepage?ln = it / de / somepage很好/ somepage?ln = de / fr / somepage很好/ somepage?ln = fr / cn / somepage很好/ somepage?ln = cn # WORKS beautifully RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L] RewriteRule ^cn/(.*) /$1?ln=zh-CN [L] RewriteRule ^([az][az])/(.*) /$2?ln=$1 [L] 这里,第三行是默认的redirect。 ast和2nd行对中国语言的正确性除去/ cn / somepage 然而 上面的代码给出了当根被问到的时候的错误: /它/给出错误404 /它给错误404 […]