标签: rewrite

如何在 nginx 中重写 URI?

请考虑我的根目录中的以下目录结构:

/resources/css
/resources/js
/resources/templates
/resources/images
Run Code Online (Sandbox Code Playgroud)

我想提供来自上述目录的静态内容,但我也想允许像这样的重写工作:

rewrite ^/([a-z]+)(.*)$    /index.php?p1=$1&p2=$2;
Run Code Online (Sandbox Code Playgroud)

例如myurl.com/register/...重写为myurl.com/index.php?p1=register&p2=...

但该规则也会重写/resources/,那么我如何/resources从重写中排除呢?或者我需要再次重写吗?我尝试过的一切似乎都不起作用,所以显然我不明白一些事情。

rewrite nginx

2
推荐指数
1
解决办法
3万
查看次数

在 .htaccess 代码中的域名中的 DOT 之前使用“\”

许多网站提供 .htaccess 代码来阻止垃圾邮件机器人、垃圾邮件推荐等。

一些网站在“.”之前使用“\”。在域名中。例如:

RewriteCond %{HTTP_REFERER} spamdomain\.com [NC,OR]

SetEnvIfNoCase Referer spamdomain\.com spambot=yes
Run Code Online (Sandbox Code Playgroud)

但有些网站使用直接域名。例如:

RewriteCond %{HTTP_REFERER} spamdomain.com [NC,OR]

SetEnvIfNoCase Referer spamdomain.com spambot=yes
Run Code Online (Sandbox Code Playgroud)

现在我很困惑哪种代码语法是正确的?两个代码都能正常工作吗?我应该使用哪一种?

rewrite .htaccess apache2

2
推荐指数
1
解决办法
2060
查看次数

在 IIS 10 上安装后 URL 重写不可用

我似乎无法在网上找到任何关于此的信息。

我已经在运行 IIS 10 的 Windows 10 上通过Web 平台安装程序安装了URL 重写重新启动了 IIS 管理器重新启动了 IIS 服务器重新启动了我的机器,但 URL 重写选项在->类别下仍然不可用SiteIIS

我还发现一个帖子说要检查是否rewrite.dll可用C:\Windows\System32\inetsrv,它是。

我也尝试重新安装它,但似乎找不到卸载的方法。

关于为什么这会发生在我身上的任何想法?

iis rewrite

2
推荐指数
1
解决办法
2万
查看次数

从 WordPress URL 隐藏“wordpress”的好方法是什么?

我有一个 Apache2 网站,其中几个不同的资源都直接安装在 DocumentRoot 下:

目标:我希望用户通过键入http://example.com,而不是http://example.com/wordpress. 但我还需要能够访问根目录下的其他资源。例如,URLhttp://example.com/mycodeigniterapp仍然需要按原样工作吗?

问:在不“破坏”任何现有功能的情况下,从 URL 中“隐藏”“wordpress”一词的好方法是什么?

先感谢您!

rewrite virtualhost apache2

2
推荐指数
1
解决办法
159
查看次数

Apache 虚拟主机

我正在寻找这样做

<VirtualHost *>
    ServerName myDomain.com
    DocumentRoot /var/www/myDomain

    <Directory /var/www/myDomain>
         Rewrite on
         RewriteRule ^blog/(.*)$ /var/www/myBlog/$1 [L]
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

所以 http://www.myDomain.com/blog/将从不同的目录读取文件。上面的方法不起作用,我怎么能在不移动文件的情况下做到这一点?

rewrite virtualhost apache-2.2

1
推荐指数
1
解决办法
320
查看次数

浏览器缓存重定向 url。如何防止它被缓存?

我正在使用 nginx 重写一个 url

rewrite ^/old$ /new1 permanent;
Run Code Online (Sandbox Code Playgroud)

我需要每隔几天更改 /old 重定向到 (/new1) 的地址。我注意到当我将 /new1 url 更改为 /new2 并重新启动 nginx 时,浏览器仍然重定向到 /new1,直到我清除浏览器缓存。

如何防止浏览器缓存重定向 url?

PS 我需要不断更改 url 的原因是我在其中一个网站上设置了横幅,为了不一直用新的 url 打扰网站所有者,我虽然我会给他一个地址使用并不断改变我自己的重定向。

rewrite nginx

1
推荐指数
1
解决办法
1582
查看次数

为什么 nginx 在重写规则上更改 HTTP 方法?

每当我收到关于 的请求时mydomain.com,我都会www使用以下重写规则将其重定向到子域:

server_name mydomain.com;
rewrite ^(.*)$ $scheme://www.mydomain.com$1 permanent;
Run Code Online (Sandbox Code Playgroud)

但是如果收到一个 POST 请求,它会被重定向为 GET。
为什么?重定向此内容的正确方法是什么?

rewrite http nginx

1
推荐指数
1
解决办法
2096
查看次数

IIS7 URL 重写 - 检查 X-Forwarded-For 标头

我对 IIS 和 URL Rewrite 非常熟悉,但我刚刚接到了一项让我难堪的任务。我需要检查每个请求是否存在 X-Forwarded-For HTTP 标头,并根据它的存在重定向请求。

我怎样才能检查这个标题?

windows iis rewrite http windows-server-2008-r2

1
推荐指数
1
解决办法
6170
查看次数

如何使用重写规则将 SPA 放置在 S3 状态网站子目录中?

过去,我已成功将 AngularJS 应用程序部署到 S3 并html5mode启用,以允许无哈希 URL。

但是,对于我当前的项目,我需要将站点的 Angular 部分放入子目录 ( /app) 中,但遇到了重大问题。

我已经尝试了一些事情,最值得注意的是以下内容,但它会导致重定向循环,而且我认为无论如何都无法使用否定规则匹配来避免这样的问题:

<RoutingRules>
    <RoutingRule>
        <Condition>
            <KeyPrefixEquals>app/</KeyPrefixEquals>
        </Condition>
        <Redirect>
            <ReplaceKeyPrefixWith>app/#</ReplaceKeyPrefixWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)

我还尝试通过将 404 引导到 app/(还有/app/#, /app/index.html, /app/index.html#)来处理 404 ,但没有任何效果可以使我的应用程序按照我想要的方式工作。在我的 angular 应用程序中导致意外错误的示例:

<RoutingRules>
    <RoutingRule>
        <Condition>
            <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
        </Condition>
        <Redirect>
            <HostName>mytest.s3-website-us-east-1.amazonaws.com</HostName>
            <ReplaceKeyWith>app/index.html</ReplaceKeyWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)

我可以使用什么规则来让所有以/app定向到开头的请求/app/#

rewrite amazon-s3

1
推荐指数
1
解决办法
3444
查看次数

如何防止 mod_rewrite 解码路径中的字符串?

我正在尝试使用 mod_rewrite 创建一个宁静的 API。

我有一个规则:

RewriteRule v2/(.*)$ v1/index.php?request=$1 [QSA,NC,L]
Run Code Online (Sandbox Code Playgroud)

然而,路径可能包含 base64 编码的字符串(即可以有 + 或 /)并且它们在到达 PHP 之前被解码。

例如,如果我去

/v2/cards/9VwQLli%2Bf0ogFl19AVRFLuztbp8cP0rYCgXBu3H9%2BDc%3DBe
Run Code Online (Sandbox Code Playgroud)

PHP 获取$_REQUEST['request']cards/9VwQLli f0ogFl19AVRFLuztbp8cP0rYCgXBu3H9 Dc=Be'.

更糟糕的是,如果我在其中添加斜杠(例如9VwQLli%2Bf0ogFl19AVRFLuztbp8c%2FP0rYCgXBu3H9%2BDc%3DBe-%2F是斜杠),我会得到 404。

我怎样才能防止这种情况发生?

注意:我尝试了BNE标志,但它们没有任何效果。我想作为一个黑客,我可以将所有+字符_都转换/-,或者甚至是双 url 编码,但我想知道是否有更好的方法。

php mod-rewrite rewrite encoding apache-2.2

1
推荐指数
1
解决办法
2892
查看次数