标签: trailing-slash

Twitter消息结束时奇怪的尾随斜线

我使用以下代码显示一个已填充消息的Twitter框页面:

<a href="http://www.twitter.com/share.php?url=http://myurl.com&text=myMessage" target="_blank">Click me</a>
Run Code Online (Sandbox Code Playgroud)

但是,在页面上,我在Twitter框中得到这个:

myMessage/
Run Code Online (Sandbox Code Playgroud)

请注意尾部斜杠.任何想法如何解决这一问题?

twitter trailing-slash

9
推荐指数
2
解决办法
1504
查看次数

如何强制Windows cmd选项卡完成向目录名称添加尾部斜杠

在极少数情况下,我必须使用Windows命令提示符而不是bash,它让我疯狂,标签完成不会在目录名称的末尾添加斜杠.是否有可以运行的设置或脚本以强制完成?

windows command-prompt tab-completion trailing-slash

8
推荐指数
2
解决办法
1842
查看次数

IIS Forces甚至使用URL Rewrite删除它

即使使用以下URL重写URL,我也无法删除我网站的URL的斜杠:http: //ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/.

真的很沮丧,因为它应该是如此简单,但我的尝试没有产生任何结果.

我甚至创建了一个测试目录并添加了名为desktops.aspx的文件和名为desktops的子文件夹.

没有子目录"/ test/desktops"加载正常,因为我将默认文档设置为查看desktops.aspx.

创建一个子文件夹并仍然引用"/ test/desktops"它会强制斜杠并查看子目录.

为什么IIS会这样做,因为它应该首先查找文件然后查找子目录?服务器端是否有任何设置可以强制撤销斜杠?

URL重写代码段:

<rule name="SEO - Remove trailing slash" stopProcessing="false">
<match url="(.+)/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_METHOD}" pattern="GET" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="_{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)

任何帮助都会受到欢迎

iis-7 url-rewriting trailing-slash

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

在WordPress中使用.htaccess删除尾部斜杠

我正在寻找一种方法来删除所有WordPress URL的尾部斜杠.

我发现像类似的答案,这一个,但是当以前有WordPress的的.htaccess规则,这是行不通的.

这是我目前的WordPress .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

wordpress .htaccess mod-rewrite trailing-slash

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

如果不是带有apache的目录,请删除尾部斜杠

我有以下重写规则:

#remove the www.
RewriteCond %{HTTP_HOST} ^www.website.co.uk$ [NC]
RewriteRule ^(.*)$ http://local.website.co.uk/$1 [R=301,L]

#this removes php extention
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# stops you accessing url with.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^.?\ ]+)\.php
RewriteRule ^([^.]+)\.php(/.+)?$ /$1%{PATH_INFO} [R=301]
Run Code Online (Sandbox Code Playgroud)

我想添加一个规则,如果有人试图用一个访问网站,删除尾部斜杠.

例如

website.co.uk/cheese/应该重定向到/ cheese

你可以看到我有一个规则,重定向ursl与.php扩展,不知道从哪里开始.

我在根文件夹中有目录,我不想删除尾随URL,但我可以为这些添加一个忽略规则.

干杯

apache .htaccess mod-rewrite trailing-slash

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

如果目录不存在,如何从nginx中的URL中删除尾部斜杠?

我正在使用PHP-FastCGI在nginx 1.4.1上运行服务器.目前我进行了设置,以便从我的URL中删除尾部斜杠并发出301重定向.但是,当我访问存在的目录时,我被迫进入重定向循环.我当前的文档根看起来像这样:

- index.php (app)
- webgrind
    - index.php
- static 
    - css
Run Code Online (Sandbox Code Playgroud)

目前我无法访问example.com/webgrind或任何其他目录.我的访问日志重复读取类似于:

GET /webgrind/ HTTP/1.1" 301 178 "-"
GET /webgrind  HTTP/1.1" 301 178 "-"
Run Code Online (Sandbox Code Playgroud)

这是我的nginx.conf中的服务器块:

server {
        listen 80;
        server_name example.com;

        location / {
            try_files $uri $uri/ /index.php?$args;
            root /var/www/example/public;
            index  index.php index.html index.htm;
        }

        rewrite ^/(.*)/$ /$1 permanent;

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

        location ~ \.php$ {
            try_files $uri $uri/ /index.php?$args;
            root /var/www/example/public;
            index index.php index.html index.htm;

            fastcgi_pass   unix:/var/run/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME …
Run Code Online (Sandbox Code Playgroud)

configuration redirect nginx trailing-slash

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

当“index.html”被剥离时,如何删除“/folder/index.html”的尾部斜杠?

我有一个具有以下文件/文件夹结构的静态站点:

  • 索引.html
  • /foobar/
    • 索引.html
    • 鲍勃.html
    • 爱丽丝.html

我想实现以下目标:

  • 删除所有.html扩展。? 作品
  • 删除index.html(分别index)。? 作品
  • 我希望文件结束时不带斜杠。? 作品
    • 如果有人添加了尾部斜杠,则重定向到没有尾部斜杠的 URL。? 不起作用
  • 我希望“文件夹”(实际上是index.html文件夹内的文件)结束时不带斜杠。? 不起作用
    • 如果有人添加了尾部斜杠,则重定向到没有尾部斜杠的 URL。? 不起作用

因此,以下 URL 应该有效:

  • example.com/(实际上是:/index.html
  • example.com/foobar(实际上是:/foobar/index.html
  • example.com/foobar/bob(实际上是:/foobar/bob.html
  • example.com/foobar/alice(实际上是:/foobar/alice.html

以下请求应重定向 (301):

  • example.com/foobar/重定向到:example.com/foobar
  • example.com/foobar/bob/重定向到:example.com/foobar/bob
  • example.com/foobar/alice/重定向到:example.com/foobar/alice

我看到这会在文件/foobar.html存在时产生问题:当有人访问 时/foobar,不清楚是请求目录还是文件。但是,我会确保这永远不会发生。


目前,我有这个.htaccess

# Turn MultiViews …
Run Code Online (Sandbox Code Playgroud)

.htaccess mod-rewrite url-rewriting trailing-slash

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

从站点中的所有URL中删除尾部斜杠

我对整个.htaccess事情都很陌生,我一直在尝试修改它,这样我的链接就不会在各自的URL末尾有斜杠.我的网站是filmblurb.org.

Wordpress开始和结束的.htaccess代码如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

如果有人能够指导我如何解决这个问题,我将不胜感激.谢谢.

.htaccess trailing-slash

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

获取请求仅适用于尾部斜杠(弹簧 REST 注释)

我有一个 Spring REST 控制器:

@RestController
@RequestMapping(value = "/myresource")
public class MyResourceController {
  ...
}
Run Code Online (Sandbox Code Playgroud)

使用 GET 请求方法:

@RequestMapping(method = GET, value = "/{value1}/{value2}/{value3}", produces = MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8")    
public ResponseEntity<MyResponseType> getMyResource(
  @ApiParam(value = "...",...)
  @PathVariable("value1") String value1,
  @ApiParam(value = "...",...)
  @PathVariable("value2") String value2,
  @ApiParam(value = "...",...)
  @PathVariable("value3") String value3) {
//...
}
Run Code Online (Sandbox Code Playgroud)

我希望这个方法可以通过以下方式调用:

http://myserver:8080/myresource/value1/value2/value3
Run Code Online (Sandbox Code Playgroud)

但它只能通过斜杠到达:

http://myserver:8080/myresource/value1/value2/value3/
Run Code Online (Sandbox Code Playgroud)

为什么会这样或者是什么导致了这种情况?

Swagger 假设没有尾部斜杠,我现在无法使用 swagger 发送请求。

我该怎么做才能使第一个 URL 工作而不使第二个 URL 工作?

非常感谢您的评论和回答。


编辑 2:

我发现没有斜线 value3 的信息是不完整的。value3 必须是电子邮件地址,但从最后一个点开始的所有内容都被切断了。因此,我收到的不是“myemail@something.de”,而是“myemail@something”。

这解释了为什么我无法获得正确的结果(无内容和 HTTP 状态代码 404)。但我仍然不明白为什么会发生这种情况。此外,如果我的电子邮件地址在顶级域(如 .com)中包含三个字母,则请求永远不会到达 GET 方法“getMyResource”...... …

java rest spring annotations trailing-slash

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

Angular 2 为具有多个路由器出口的 URL 添加尾部斜杠

我有一个有两个出口的应用程序组件:

template: '<router-outlet></router-outlet><router-outlet name="popup"></router-outlet>'

我按照此链接中的示例创建了路由和路由器链接,只要路由器链接在应用程序组件内,一切都可以正常工作。但是,我创建了一个主布局组件,里面有一个菜单,以便我可以在所有页面上重用它,并使用 loadChildren 加载内部相应的模块和组件。

<app-main-menu></app-main-menu>
<h1>
  {{title}}
</h1>
<div class="container">
  <router-outlet></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是,当我将弹出式插座的 routerLinks 移动到菜单中时,它包含主路由的尾部斜杠,并且生成的 url 不起作用。因此,例如这个 routerLink:

<a [routerLink]="[{ outlets: { popup : ['login'] } }]">Login</a>
Run Code Online (Sandbox Code Playgroud)

如果放置在应用程序组件中,则创建 url 'localhost/mainroute(popup:login)',如果放置在菜单组件中,则创建'localhost/mainroute/(popup:login)'

虽然第一个 url 有效,但第二个 url 会产生错误: 错误:无法匹配任何路由:'mainroute'

我不明白为什么它以不同的方式对待这两种情况。我也不明白,即使 url 'localhost/mainroute/'有效,第二个生成的 url 也不会因为尾部斜杠。

有人能帮我吗?

routes trailing-slash routerlink router-outlet angular

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