标签: url-rewriting

在 PHP 表单中使用 $_GET 方法而不更改 url?

http://example.com/bills.php?sort=highest 
http://example.com/bills.php?sort=alpha
http://example.com/bills.php?sort=lowest
Run Code Online (Sandbox Code Playgroud)

所以上面的 url 按最高、字母和最低排序。他们通过表单使用 $_GET 方法。我想知道是否有一种方法可以在不更改 url 的情况下提交表单/获取 $_GET 数据?

<form action="bills.php" method="get">
    <select onchange="this.form.submit();" name="sort" class="right sort">
        <option>What would you like to sort by?</option>
        <option value="highest" <?php if(isset($_GET['sort']) && $_GET['sort'] == 'highest'){?> selected="selected" <?php } ?>>Highest to Lowest</option>
        <option value="lowest" <?php if(isset($_GET['sort'])&& $_GET['sort'] == 'lowest'){?> selected="selected" <?php } ?>>Lowest to Highest</option>
        <option value="alpha" <?php if(isset($_GET['sort'])&& $_GET['sort'] == 'alpha'){?> selected="selected" <?php } ?>>Alphabetically</option>
    </select> 
</form>
Run Code Online (Sandbox Code Playgroud)

上面是我能够提交新排序请求的代码。

我想让我的网址保留在example.com/bills.php可以吗?

是否可以使用 .htaccess 重写 url?我尝试过一种 URL 重写方法,它允许我访问http://example.com/bills/alpha并且工作正常,但是当我选择一个新查询时,它会变成http://example.com/bills/bills/?sort=alpha …

php get url-rewriting

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

URL 重写以问号中断

我想重写 url (DotNetNuke 友好 URL),如下所示:

/search.aspx?query=test到:~/SearchResults?search=test

我尝试过各种组合,但看起来它没有考虑网址中问号后面的部分

  <RewriterRule>
      <LookFor>.*/search.aspx?query=(.+)</LookFor>
      <SendTo>~/SearchResults?Search=$1</SendTo>
  </RewriterRule>
Run Code Online (Sandbox Code Playgroud)

但它不起作用..

我努力了:

  <RewriterRule>
      <LookFor>.*/search.aspx\?query=(.+)</LookFor>
      <SendTo>~/SearchResults?Search=$1</SendTo>
  </RewriterRule>
Run Code Online (Sandbox Code Playgroud)

但这也不适用于 url /search.aspx?query=test。我的 search.aspx 收到 404

这是DotNetNuke的web.config中的相关部分:

<friendlyUrl defaultProvider="DNNFriendlyUrl">
  <providers>
    <clear />
    <add name="DNNFriendlyUrl"
         type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" 
         includePageName="true" 
         regexMatch="[^a-zA-Z0-9 _-]" 
         urlFormat="humanfriendly" />
  </providers>
</friendlyUrl>
Run Code Online (Sandbox Code Playgroud)

是否有什么原因导致它跳过?

这是友好的 url 重写器的源代码(如果有帮助的话)。我不太擅长正则表达式,所以我可以使用一些帮助。

https://dotnetnuke.codeplex.com/SourceControl/latest#Trunk/Content/Community/HttpModules/UrlRewrite/UrlRewriteModule.cs

regex asp.net dotnetnuke url-rewriting

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

删除本地主机中的 .php 扩展名

我一直在试图找出如何删除 .php 扩展名,我到处搜索,似乎大部分代码都不再工作了。下面的代码是我现在用来删除 .php 扩展名的代码,但它不起作用。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !- f
RewriteRule ^([^\.]+)$ $1.php [NC]
Run Code Online (Sandbox Code Playgroud)

php url-rewriting url-rewrite-module

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

使用 Laravel 和 HHVM 重写 NGINX

nginx 新手,在重写时遇到了一些问题。

我有一个链接到子域 test.mydomain.com 的网站。我当前的 nginx 配置:

server {
    listen 80 default_server;

    root /test/public;
    index index.html index.htm index.php;

    server_name localhost;

    access_log /var/log/nginx/localhost.laravel-access.log;
    error_log  /var/log/nginx/locahost.laravel-error.log error;

    charset utf-8;

    location /admin/ {
        alias /test/public/admin/public/;
        try_files $uri $uri/ /admin/index.php?$query_string;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }

    error_page 404 /index.php;      

    include hhvm.conf;  # The HHVM Magic Here

    # Deny .htaccess file access
    location ~ …
Run Code Online (Sandbox Code Playgroud)

fastcgi nginx url-rewriting laravel hhvm

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

.htaccess url 重写并删除 %20

嗨,我对重写事情很陌生。我有一个 Apache 主机正在托管我的网站,我需要重写 url 以使其看起来比当前更好。

所以我有这个链接http://www.kalah.co.za/content.php?page=Civil%20Tactical%20Training我希望它看起来像http://www.kalah.co.za/Civil-Tactical -培训.html

现在我可以用这段代码完成我猜的第一部分

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /content.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)

但我还需要删除或更换 - 东西。我不知道什么对 SEO 更友好,任何建议和意见/建议将不胜感激。

PS:Windows 服务器和 apache 服务器的 .htaccess 在重写方面是否有所不同?

php apache .htaccess mod-rewrite url-rewriting

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

使用 .htaccess 将用户 ID 转换为用户名?

我想使用 .htaccess 将链接到个人资料页面的 URL 从 ID 号转换为名称。例如,在 Facebook 上,如果您要访问:

https://facebook.com/profile.php?id=4
Run Code Online (Sandbox Code Playgroud)

它会将您带到马克·扎克伯格的个人资料页面。但是,您也可以简单地访问:

https://facebook.com/zuck
Run Code Online (Sandbox Code Playgroud)

...这对用户更友好并且更容易记住。如何使用 htaccess 将 ID 号转换为用户名?我是否需要将其发送到 php 脚本来处理并发回名称?

php .htaccess url-rewriting

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

IIS 重写规则 - 从一个域绑定重定向到另一个域绑定

我的 IIS 站点上有多个绑定,我想捕获所有请求

以下任何一个 -domainA.co.uk、www.domainA.co.uk、domainA.com、www.domainA.com

并重定向到网站上其他绑定之一的页面

www.domainB.com/my-folder/

通过 URL 重写可以实现这一点吗?

iis url-rewriting url-rewrite-module

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

IIS重定向到HTTPS,不同的规则相同的结果

在尝试将 http 流量重定向到 https 时,我发现了以下两个规则,它们似乎在做同样的事情,但是它们在两个地方有细微的差异。我应该选择其中一个而不是另一个吗?有什么好处吗?(性能、极端情况等)

规则1:

<rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
        <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
Run Code Online (Sandbox Code Playgroud)

规则 2:

<rule name="HTTP to HTTPS Redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
        redirectType="Permanent" />
</rule>
Run Code Online (Sandbox Code Playgroud)

差异在于输入和重定向 URL,其中一个使用 {R:1},另一个使用 REQUEST_URI。

先感谢您

iis url-rewriting url-rewrite-module

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

Azure API 管理:替换查询字符串参数名称

APIM 新手。尝试使用后端 api 期望的不同名称更改公开的查询字符串参数名称(而不是值)

例如,APIM 端点需要 /v1/Customer?CustomerId=123

我想我需要在入站部分使用 rewrite-url 策略?

要将其更改为:/v1/Customer?ExternalCustomerId=123


正在尝试这个,不起作用

<set-query-parameter name="ExternalCustomerId" exists-action="append">
        <value>@(Context.Request.QueryString["CustomerId"])</value>
    </set-query-parameter>
Run Code Online (Sandbox Code Playgroud)

错误:当前上下文中不存在名称“Context”

url-rewriting azure-api-management

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

UserScript :重写特定的 URL

我一直在寻找一种通过用户脚本重写特定 URL 的方法(GreaseMonkey、TamperMonkey...)。我找到了替换特定域的所有部分但不仅仅是一个网址的解决方案。

更准确地说,在 iCloud Mail (icloud.com/mail) 上,我想将 https://www.icloud.com/message/current/en-us/index.html#compose替换 为 https://mail.google.com /mail/?view=cm&fs=1&tf=1

我根本不是脚本专家,我不知道从哪里开始

非常感谢

url greasemonkey url-rewriting userscripts tampermonkey

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