我的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。
示例:当我访问以下网址时: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文件添加到产品文件夹中,但这使重写变得混乱。
答案 0 :(得分:0)
规则看起来不错,请在浏览器中检查源代码的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
是正确的。