【问题标题】:.htaccess How to redirect to index.html with params but the param value is same as a folder name.htaccess 如何使用参数重定向到 index.html 但参数值与文件夹名称相同
【发布时间】:2021-05-17 16:44:07
【问题描述】:

路由 url 类似于 'my_website/:param'

但我的位置包含的文件夹名称与参数相同。 所以当我用 http://my_website/apple 浏览时。 浏览器将显示文件夹,而不是将值“apple”传递给网络。

我应该如何设置 .htaccess?谢谢 以下仅在不存在具有相同值的文件夹时有效。

<ifModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d

  RewriteRule ^.*$ - [NC,L]
  RewriteRule ^(.*) index.html [NC,L]
</ifModule>

【问题讨论】:

  • 感谢您在问题中显示您的 htaccess 文件,能否请您告诉我们链接 http://my_website/apple 应该由后端的哪个文件(例如--> .php 文件等)提供服务?跨度>
  • 我的前端使用 React.js。所以它将由 index.html 提供服务

标签: reactjs .htaccess mod-rewrite url-rewriting friendly-url


【解决方案1】:

根据您显示的示例,您能否尝试以下操作。请在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.html [L]

或者,如果您只寻找以apple 开头的链接,请尝试关注。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^apple index.html [NC,L]

OP 尝试代码中的问题: RewriteRule ^(.*) index.html [NC,L] 将创建一个循环,因为没有提及条件,因此每次对每个 uri 都为真。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2014-06-26
    • 2018-03-08
    相关资源
    最近更新 更多