首页 > 解决方案 > html 站点的 htaccess 子文件夹

问题描述

我的 htaccess 代码无法正常工作。希望能得到一些帮助。除非我单击子文件夹页面中的链接,否则它工作得很好。这是我的代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.html
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

我删除了 .html 并添加了一个斜杠。

当我在其中一个子文件夹页面中单击链接时,它会生成一个奇怪的 URL。

示例:当我在 URL 时: http: //domainname.com/product/2-jars-500mg-hemp-extract-pain-relief-cream/

然后我点击链接:href = '/product/3-jars-500mg-full-spectrum-hemp-extract-pain-relief-cream'

它将链接重写为 /product/2-jars-500mg-hemp-extract-pain-relief-cream/3-jars-500mg-full-spectrum-hemp-extract-pain-relief-cream 导致 404 错误。

我目前在线在 public_html 文件夹中有一个 htaccess 文件

该站点通过 GoDaddy 托管在 apache 服务器上。

我尝试将相同的 htaccess 文件添加到产品文件夹中,但这会扰乱重写。

标签: .htaccess

解决方案


规则看起来不错,在浏览器中检查您的 url 的源代码......也许它是相对的,并且在 uri 的开头或结尾没有斜线(例如 product/3-jars-500mg... 不是 /product/3-jars-500mg. ../)

您需要 href = '/product/3-jars-500mg-full-spectrum-hemp-extract-pain-relief-cream/' 才能证明该规则RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html是正确的。


推荐阅读