标签: trailing-slash

如何在没有Rails 4的情况下向所有URL添加trailing_slash?

我已经尝试在application.rb中添加它

config.action_controller.default_url_options = { :trailing_slash => true }
Run Code Online (Sandbox Code Playgroud)

以及:trailing_slash => true在routes.rb中

match '/download', to: 'welcome#download', via: 'get', :trailing_slash => true
Run Code Online (Sandbox Code Playgroud)

但似乎都不起作用.我搜索了rails 4.0 doc但找不到相关信息.我在这里错过了什么?

更新:

我试过添加

Rails.application.default_url_options[:trailing_slash] = true
Run Code Online (Sandbox Code Playgroud)

filter_parameter_logging.rb因为这是在整个项目中,我唯一能找到的地方Rails.application.*,但它不工作要么.我在发布版本中找到了这一行,我使用的是4.0.4.我在错误的地方添加了这个吗?我在重新检查之前重新启动了服务器.

对于这个简单的问题感到抱歉,但是从我收集到的内容中也不trailing_slash应该反映在浏览器网址中,如果不是主要的话?因为这是我需要的,与历史相关.

url ruby-on-rails url-routing trailing-slash ruby-on-rails-4

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

使用 React 和 Flask API 时带有尾部斜杠的 CORS 奇怪行为

我目前正在使用 React 和 Flask API 构建一个应用程序,但遇到了一些我不明白的 CORS 错误:

我有一个像这样的端点:

@app.route('/home/', methods=['GET'])
def home():
    response = Response(
        json.dumps(
            get_data()
        ),
        mimetype='application/json'
    )
    response.headers.add("Access-Control-Allow-Origin", "*")
    return response
Run Code Online (Sandbox Code Playgroud)

如果我像这样从反应中调用这个端点,一切都会正常:

fetch('http://localhost:8080/home/')
            .then(res => res.json())
            .then((data) => {
                setData(data)
            })
            .catch(console.log)
Run Code Online (Sandbox Code Playgroud)

但是,如果我按照 Flask API 中的方式设置路由'/home'(无尾部斜杠)并使用它调用它,fetch('http://localhost:8080/home)'则会出现 CORS 错误:Access to fetch at 'http://localhost:8080/home' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

虽然这对我的项目来说不是一个大问题,但我想了解这个尾部斜杠的变化是什么......

谢谢,

slash cors flask trailing-slash reactjs

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

Spring Boot 3 控制器处理带尾部斜杠问题的 POST 请求

我的 Spring Boot 应用程序面临一个问题,其中我有一个仅处理 POST 请求的控制器。application.yml我已经在我的as中设置了上下文路径server.servlet.context-path: /context/path。目标是处理/context/path/context/path/URL 的 POST 请求。

我的控制器看起来像这样:

@RestController
@RequestMapping("")
public class MyController {

    @PostMapping({ "", "/" })
    public ResponseEntity<String> handlePostRequest() {
        // Handling POST request logic
        return ResponseEntity.ok("POST request handled");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我向 发送 POST 请求时/context/path,它会被重定向为 302 状态代码,并且请求方法更改为 GET,并且会被重定向到/context/path/.

我尝试过@RequestMapping和的不同组合PostMapping。什么都没起作用。

我找到了一些推荐的解决方案来创建 WebConfiguration 并覆盖 configurePathMatch 方法。setUseTrailingSlashMatch但类似或 的方法setMatchOptionalTrailingSeparator已被弃用。

尽管做出了这些尝试,问题仍然存在。如何配置我的应用程序来处理带或不带尾部斜杠的请求?任何有关解决此问题的见解或建议将不胜感激。

trailing-slash spring-boot spring-boot-3

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

在Backbone路由中匹配空路由和尾部斜杠?

我知道有一些重复内容(SEO)的问题,但这不是我的项目所关注的.

在我的骨干路由器中,我有这个:

routes: {
    "": "startOrder",
    "order/:orderNumber/:stepName": "getOrder",
    "order/:orderNumber/:stepName/": "getOrder"
},
Run Code Online (Sandbox Code Playgroud)

请注意,第二条和第三条路线导致相同的事情.

问题是如果有人输入一个以"/"字符结尾的URL,我希望它调用一个单独的函数(然后删除斜杠),但这不会发生,它总是匹配空白路由.然后我会在以后遇到问题,因为URL有一个不应该的斜杠.

我错过了什么吗?

javascript url-routing backbone.js trailing-slash

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

在相对URL上改进尾随斜杠

是否Retrofit从端点的相对URL中删除尾部斜杠?我尝试在我的一个端点上添加尾部斜杠但是当我单步调试并查看Call对象时,如果我钻入delete.relativeUrl,它不会显示尾部斜杠.

endpoint trailing-slash retrofit retrofit2

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

上传带有名称的文件包含到 AWS S3 存储桶的尾部斜杠

我正在尝试通过 Python 上的 boto3 将一些文件上传到 S3 上的存储桶中。

这些文件名是网站地址(例如 www.google.com/gmail)。

我希望文件名是网站地址,但实际上它创建了一个名为“www.google.com”的文件夹,并在上传的名为“gmail”的文件中

我试图在尾部斜杠之前用双斜杠和反斜杠解决它,但没有用。

有没有办法忽略尾部斜杠并上传其名称为网站地址的文件?

谢谢。

amazon-s3 trailing-slash

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

从根文件夹中的htaccess规则中排除子目录

我在我的网站的根文件夹下使用htaccess规则以删除文件扩展名并在末尾添加尾部斜杠.但是,我想从根文件夹htaccess规则中排除子目录/ sub-dir /.我试图将另一个htaccess添加到/ sub-dir /文件夹并放入RewriteOptions inheritRewriteEngine Off放在文件中,但它们都不起作用.

RewriteEngine On
RewriteBase /

# redirect from non-www to www
RewriteCond %{HTTP_HOST} ^mywebsite.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^(.*)index.php$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]

# Remove trailing slash:
RewriteRule (.*)/$ $1 [L]

# Now test without the trailing slash:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_FILENAME}.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

任何建议都非常感谢.

谢谢

php apache .htaccess trailing-slash url-redirection

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

在.htaccess中删除URL中的多个斜杠组

我目前有一个网站,客人可以使用任意数量的斜杠访问每个网址,以分隔文件夹名称.例如,如果URL应该是:

http://example.com/one/two/three/four
Run Code Online (Sandbox Code Playgroud)

然后,用户可以通过以下任何一种方式访问​​同一页面:

http://example.com/one//two///three////four/////
http://example.com/one/two////three/four/////
http://example.com///one///////////two////three/four/
http://example.com///////////one///////////two/three/four
Run Code Online (Sandbox Code Playgroud)

但是,我希望上面的示例网址仅将用户重定向到此网址:

http://example.com/one/two/three/four
Run Code Online (Sandbox Code Playgroud)

这是我的.htaccess文件,试图阻止巨大的斜杠:

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^(.*)/+$ /$1 [R=301,L,NC]
RewriteCond %{REQUEST_URI} ^/+(.*)/+$
RewriteRule .* /%1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

第三行成功停止长URL的尾部斜杠.第4行和第5行是我尝试在域名后立即停止斜杠,但这是不成功的.

我问这个问题的原因是因为我不希望谷歌抓住我的重复内容,并且在网站上有活跃的adsense,谷歌可能会扫描我访问的所有网址.

有没有RewriteCond/RewriteRule组合我可以用来剥去中间斜线或者它更复杂?

apache .htaccess mod-rewrite slash trailing-slash

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