【发布时间】:2019-06-05 14:15:47
【问题描述】:
在我的应用程序中,我有一个包含多个项目的网上商店。对于每个项目,您都可以拥有不同的颜色。所以颜色必须在 url 中才能作为参数发送。
当您点击一个项目时,您将使用 url http://cmsproject.local/item/2/nocolor 发送到该项目的页面。 nocolor 是我想从 url 中隐藏的东西,这将导致看起来像这样: http://cmsproject.local/item/2.
如果您选择了一种颜色,则 URL 的最后一部分将显示为“/2136c7”。这不是问题,应该仍然是这样的。只有当没有选择颜色时,url 才应该隐藏 nocolor 部分。
我尝试了多个论坛,但没有一个适合我。我尝试过这样的事情: RewriteRule ^2/nocolor/(.*)$ $1。还有这个 重写规则 ^/2/nocolor [L].
我的 htaccess 文件如下所示:
重写引擎开启
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteRule ^/2/nocolor [L]
有了这个,我预计 url 会“隐藏” nocolor 部分,而不是什么都没有改变,也没有显示任何错误。
【问题讨论】:
-
只有 ID 为 2 的项目?为什么你的那个号码包括在 htaccess 中?