我有一个Ubuntu服务器(networking)具有以下configuration 版本:13.10 安装了:Apache2,apache2 utils,php5 启用:重写,userdir 问题 当我尝试使用重写规则,例如foo.bar.com/~«user»/page ,我得到 在此服务器上找不到请求的URL /home/«user»/public_html/page.php 。 据我所知,它在那里; 当我访问foo.bar.com/~«user»/page.php ; 田田! 它在那里。 我读了/etc/apache2/apache2.conf下的所有configuration,/ /etc/apache2/apache2.conf / /etc/apache2/mods-available/userdir.conf /etc/apache2/apache2.conf ,但对我来说没有什么奇怪的。 附加信息 用户foder权限: drwx rx rx public_html drwx rx rx权限 我读了我必须提供重写基地,但我真的没有看到什么奇怪的path 我错过了什么? 重写规则: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 要么 RewriteRule ^login/? login.php [L] 顺便说一句,我试图将目录移动到/ var / www和重写规则现在可以运行没有404错误。
我需要保留所有的用户查询string。 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^$ index.html?page=home&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^about$ index.html?page=about&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^contact$ index.html?page=contact&%1 我怎样才能为所有RewriteRules指定RewriteCond? 我不期待单一的通用控制器RewriteRule,因为这是一个小的静态网站。
我正在家里build立一个服务器来托pipe几个小网站。 其中之一是基于.NET,需要IIS,其他是基于PHP,需要Apache。 因此,我的服务器上安装了IIS 7和Apache 2.2.x,其中端口80上的IIS和端口8080上运行的Apache。 我想将IIS设置为反向代理,将Apache站点的请求转发到端口8080,并根据主机标头为.NET站点提供请求。 喜欢这个: www.mydotnetsite.com/* -> IIS -> serve from IIS www.myapachesite.com/* -> IIS -> forward to apache on port 8080 www.myothersite.com/* -> IIS -> forward to apache on port 8080 我做了一些Googlesearch,似乎应用程序请求路由function可以做我所需要的,但是我似乎无法按照我所希望的方式工作。 我可以得到它转发到Apache服务器的所有stream量,我可以得到它转发具有特定的URL模式到Apache服务器的stream量,但我似乎无法得到它转发的主机头(例如“转发所有请求www.apachesite.com – > localhost:8080“) 所以问题是,我将如何去configurationARR来做到这一点? 或者我需要一个不同的工具? 我也开放使用Apache作为反向代理,并将.NET站点请求转发到IIS,如果更容易的话(在端口80上运行Apache,在8080上运行IIS)。
我有一个在http://site.com/blog上托pipe的博客。 我如何指示nginx将site.com请求重写到site.com/blog ? 这不应该是永久性的。
我在将.htaccess文件转换为nginx时遇到了麻烦。 我有3个.htaccess文件。 第一个.htaccess文件位于文档根目录中,如下所示: Options +FollowSymLinks RewriteEngine On RewriteRule ^img-(.*)\.html img.php?id=$1 [L] RewriteRule ^slide-(.*)\.html slider.php?id=$1 [L] RewriteRule ^page-(.*)\.html page.php?name=$1 [L] RewriteRule ^contact\.html$ contact.php [QSA,L,NC] 第二个.htaccess文件位于一个名为upload的文件夹中: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?foo\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|bmp|png)$ nohotlink.gif [L] <Files ~ "\.(php|sql|php3|php4|phtml|pl|py|jsp|asp|htm|shtml|sh|cgi)$"> order allow,deny deny from all </Files> 第三个也是最后的.htaccess文件位于名为“small”的上传文件夹的子目录中: RewriteEngine Off 现在我在/ etc / nginx中创build了一个名为includes的文件夹,并用这些重写规则创build了3个独立的.access文件: 对于位于文档根目录中的第一个.htaccess文件,我在/ etc […]
我想把网站总是redirect到www.site.com。 但是,我不知道如何让WWW总是显示在前面应该说有人input的域没有WWW。 编辑: server { listen 80; server_name site.com; rewrite ^(.*) https://www.site.com$1 permanent; } server { listen 80; server_name www.site.com; #rewrite ^(.*) https://www.site.com$1 permanent; root /home/site/public_html; listen 443 ssl; 如果我inputsite.com,则转到https://www.site.com = SUCCESS 如果我inputsite.com/index.php,它会转到http://www.site.com = NO SSL 想法?
我正在尝试将所有来到“ http://example.com/something ”url的用户redirect到“ http://answares.com/examples_com/something ”之类的url。 我试着用这样的代码: server { listen 1.2.3.4:80; server_name "example.com"; rewrite ^(.*) http://answares.com/examples_com$1 permanent; } 通过访问“ http://example.com/ ”我被redirect到“ http://answares.com/examples_com/ ”,但通过访问“ http://example.com/something ”,我被redirect到:“ http ://answares.com/something “。 我试图以不同的方式做到这一点,但我得到的最好的是: http://answares.com/examples_com//something 这是因为两个斜线看起来跛脚。 我在Ubuntu 10.4上使用Nginx 0.7.65
我想转移请求到一个特定的子目录,到另一个根目录。 怎么样? 我现有的块是: server { listen 80; server_name www.domain.com; location / { root /home/me/Documents/site1; index index.html; } location /petproject { root /home/me/pet-Project/website; index index.html; rewrite ^/petproject(.*)$ /$1; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 也就是说, http://www.domain.com应该服务于/home/me/Documents/site1/index.html,而http://www.domain.com/petproject应该为/ […]
如果我的(Rails)应用程序closures或正在进行数据库维护或其他任何事情,我想在nginx级别指定一个静态页面。 所以像http://example.com/ *这样的每个URL都应该提供一个静态的html文件,比如/var/www/example/foo.html。 试图指定在我的nginxconfiguration是给我适合和无限循环,什么都没有。 我正在尝试的东西 location / { root /var/www/example; index foo.html; rewrite ^/.+$ foo.html; } 你将如何获得你的域上的每个URL来提供一个静态文件?
我有一个Web应用程序部署在一个Web应用程序webapps/appname应用程序名称,我试图将重写规则添加到example.org/appname-slow重写为example.org/appname?delay=1 。 我在webapps/ROOT/WEB-INF/web.xml <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <init-param> <param-name>confReloadCheckInterval</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>statusEnabledOnHosts</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>logLevel</param-name> <param-value>sysout:DEBUG</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> 以及在webapps/ROOT/WEB-INF/urlrewrite.xml : <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> <urlrewrite use-context="true"> <rule match-type="regex"> <from>^/appname-slow/(.*)$</from> <to type="forward" qsappend="true">/appname/$1?delay=1</to> </rule> </urlrewrite> 但是当我去到新的url,我得到: HTTP Status 404 – /appname/ type Status […]