我使用以下代码显示一个已填充消息的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)
请注意尾部斜杠.任何想法如何解决这一问题?
在极少数情况下,我必须使用Windows命令提示符而不是bash,它让我疯狂,标签完成不会在目录名称的末尾添加斜杠.是否有可以运行的设置或脚本以强制完成?
即使使用以下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)
任何帮助都会受到欢迎
我正在寻找一种方法来删除所有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) 我有以下重写规则:
#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,但我可以为这些添加一个忽略规则.
干杯
我正在使用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) 我有一个具有以下文件/文件夹结构的静态站点:
我想实现以下目标:
.html扩展。? 作品index.html(分别index)。? 作品index.html文件夹内的文件)结束时不带斜杠。? 不起作用
因此,以下 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事情都很陌生,我一直在尝试修改它,这样我的链接就不会在各自的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)
如果有人能够指导我如何解决这个问题,我将不胜感激.谢谢.
我有一个 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”...... …
我有一个有两个出口的应用程序组件:
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 也不会因为尾部斜杠。
有人能帮我吗?
trailing-slash ×10
.htaccess ×4
mod-rewrite ×3
angular ×1
annotations ×1
apache ×1
iis-7 ×1
java ×1
nginx ×1
redirect ×1
rest ×1
routerlink ×1
routes ×1
spring ×1
twitter ×1
windows ×1
wordpress ×1