我只是从Apache迁移到Nginx并尝试设置重写规则。 我有一个虚拟主机,这是虚拟主机的结构 /var/www/name-of-virtual-host/ ├── wp1 │ ├── wp-admin │ ├── wp-content │ └── wp-includes └── wp2 ├── wp-admin ├── wp-content └── wp-includes 正如你所看到的,我在不同的文件夹中有2个不同的WordPress安装 所以我试图创build一个重写规则来处理这两个WP。 这是我的位置定义: location / { try_files @missing $uri; } location @missing { rewrite ^/([az-])(/.*)$ /$1/index.php last; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in […]
我正在build立一个微型网站,我想拥有自己的url。 我怎样才能将该urlredirect到现有网站的子文件夹? 例如,我可能想redirecthttp:/www.applesandstuff.com/ => http://www.cheeseandstuff.com/applesandstuff/
这是我们的场景: 我们的DNS由一家公司托pipe。 他们不pipe理DNS。 我们使用Zoneedit(www.zoneedit.com)来pipe理DNS,例如域名服务器,CNAME等。 然后我们有我们的networking主机,我们只有我们的文件托pipe。 我们在zoneedit上创build了一个子域。 我们想做一个URL重写,使得subdomain.ourdomain.com显示为www.ourdomain.com/subdomain。 我是否使用Zoneedit来执行URL重写或Web主机或DNS主机? 我检查了Zoneedit文档,但我找不到一个URL重写的方法。 需要一些build议。 谢谢
有没有一种方法可以实现redirect到另一个网站,而不会丢失原始url? 所以,我们想要达到的是能够访问: somesite.com/some/url -> someothersite.com/some/url 但我们希望保留somesite.com/* 。 换句话说,我们希望通过somesite.com访问someothersite.com 每个url 。
我正在将一个设置从apache迁移到nginx。 在这个过程中,我在.htaccess文件中遇到了这个重写规则: RewriteRule ^/?(?:(?!one|two|three|four).?)+/?$ http://somewhere.else.com [R=301,L] 我通常在正则expression式方面很不错,但是这远远超过了我。 对于初学者,我不知道embedded括号甚至被允许。 有人可以向我解释这个正则expression式吗? 如果这只是一个Apache的东西,我怎么可以复制它在Nginx?
server { server_name *.com.another.com; location / { root /var/www/html/$host; index index.html; } } 在上面的例子中,如果有人向www.jaja.com.another.com发出请求,nginx将在目录/var/www/html/www.jaja.com.another.com 这是我所需要的:如果有人向www.jaja.com.another.com发出请求,我希望nginx在目录/var/www/html/www.jaja.com 换句话说, $host是www.jaja.com.another.com 。 我需要删除$host中的.another.com Nginxstringreplace对我来说是新的
我不熟悉apache2的重写引擎,所以我需要有人的帮助来创build一个重写规则。 我试图redirect这个文件夹和其内容的url: http : //mysite.com/junk/ 到http://files.anotherone.com/misc/
我正在尝试使用mod_rewrite创build一个restful API。 我有规则: RewriteRule v2/(.*)$ v1/index.php?request=$1 [QSA,NC,L] 然而,path可能包含base64编码的string(即可以有+或/),它们在PHP到达之前被解码。 例如,如果我去 /v2/cards/9VwQLli%2Bf0ogFl19AVRFLuztbp8cP0rYCgXBu3H9%2BDc%3DBe PHP获取$_REQUEST['request'] as cards/9VwQLli f0ogFl19AVRFLuztbp8cP0rYCgXBu3H9 Dc=Be' 。 而更糟的是,如果我在那里添加一个斜线(例如9VwQLli%2Bf0ogFl19AVRFLuztbp8c%2FP0rYCgXBu3H9%2BDc%3DBe – %2F是斜杠),我得到一个404。 我怎样才能防止这种情况发生? 注意:我尝试了B和NE标志,但没有任何效果。 我想作为一个黑客,我可以只将所有+字符转换为_和所有/转换,或者甚至可能是双重url编码,但我想知道是否有更好的方法。
许多网站提供的.htaccess代码来阻止垃圾邮件,垃圾邮件转介等。 有些网站在''之前使用'\'。 在域名。 例如: RewriteCond %{HTTP_REFERER} spamdomain\.com [NC,OR] SetEnvIfNoCase Referer spamdomain\.com spambot=yes 但有些网站使用直接域名。 例如: RewriteCond %{HTTP_REFERER} spamdomain.com [NC,OR] SetEnvIfNoCase Referer spamdomain.com spambot=yes 现在我很困惑哪个代码语法是正确的? 这两个代码工作正常吗? 我应该使用哪一个?
我有WordPress安装在我的根目录,为此RewriteRule的地方。 我需要密码保护一个子文件夹(“蓝色”),所以我在这个文件夹中设置htaccess。 问题是,根htaccess RewriteRule应用于“蓝色”,因此我得到一个404在主WordPress站点(而不是打开子文件夹的密码对话框)。 这里是根htaccess: RewriteEngine on <Files 403.shtml> order allow,deny allow from all </Files> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 我尝试插入这个作为第二行,无济于事: RewriteRule ^(blue)($|/) – [L] 还尝试在index.php之前插入这个RewriteRule: RewriteCond %{REQUEST_URI} !^/blue/ 那也行不通。 还插入到子文件夹的htaccess中,这也没有工作: <IfModule mod_rewrite.c> RewriteEngine off </IfModule> 有任何想法吗?