file/path 的规范 URL 没有尾部斜线
Canonical URL without trailing slash for file/path
我有一个基于 Codeignitor(theinnovativepackaging.com) 的站点。从 SEO 的角度来看,我已经读到 Root URL 中的尾部斜线并不重要,但它对 file/paths 很重要,例如 /about-us 和 /about-us/ 就我所研究的而言。我的问题是我的网站页面在 URL 中有尾部斜杠,但是当您查看页面源代码并检查规范 URL 是否匹配时,我没有看到任何尾部斜杠。
如果我有这样的 URL 结构,那有关系吗?
URL 在地址栏中:示例。com/product-name/
规范 URL:示例。com/product-name。
据我所知,根据 SEO 研究它不是一个好习惯。如果可以,请告诉我,如果它不友好,请指导我如何在产品页面中添加尾部斜杠。我附上我的网站 .htaccess
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,NE,L]
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule (.*?)index\.php/*(.*) // [R=301,L]
# Standard ExpressionEngine Rewrite
# ------------------------------
RewriteCond !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/ [L]
我的主要目标是在地址栏中保持规范标签和 URL 相同,如果它真的影响 SEO
rel="canonical"
link 元素的值(我假设这就是您所说的“规范标签”的意思)应该包含您的规范 URL。如果您在内部 link 中是 linking/using 不同的 URL,那么您在“规范标签”中歪曲了规范 URL。
是的,两者应该是一样的。因此,您要么需要在“规范标签”中附加尾部斜杠,要么在内部 links.
中删除尾部斜杠
如果您始终link使用URL 结尾的斜线,那么 Google 可能会忽略您的“规范标签”省略了它。
I am attaching my sites .htaccess
您的 .htaccess
文件似乎与此处无关。您不是在此处强制(或删除)尾部斜杠。 (如果请求非规范 URL,您可以稍后添加规范重定向以强制执行其中一个。)
但是,您眼前的问题无论如何都不会在 .htaccess
中解决。您需要更正您的内部 link 或“规范标签”。
更新:
I am having this link in my template file <link rel="canonical" href="<?php echo current_url(); ?>" />
It is appending slash with root URL but not appending any slash for other pages. Ca you suggest me some logical condition to write here so that slash gets appended with other pages too
你或许可以这样做:
<link rel="canonical" href="<?php $url = current_url(); echo preg_match('/\/$/',$url) ? $url : $url.'/'; ?>" />
这将在 URL 后面附加一个斜杠(如果 URL 不存在的话)。虽然我确信还有更多 Codeigniter 方法可以做到这一点。 (?)
我有一个基于 Codeignitor(theinnovativepackaging.com) 的站点。从 SEO 的角度来看,我已经读到 Root URL 中的尾部斜线并不重要,但它对 file/paths 很重要,例如 /about-us 和 /about-us/ 就我所研究的而言。我的问题是我的网站页面在 URL 中有尾部斜杠,但是当您查看页面源代码并检查规范 URL 是否匹配时,我没有看到任何尾部斜杠。 如果我有这样的 URL 结构,那有关系吗? URL 在地址栏中:示例。com/product-name/ 规范 URL:示例。com/product-name。 据我所知,根据 SEO 研究它不是一个好习惯。如果可以,请告诉我,如果它不友好,请指导我如何在产品页面中添加尾部斜杠。我附上我的网站 .htaccess
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,NE,L]
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule (.*?)index\.php/*(.*) // [R=301,L]
# Standard ExpressionEngine Rewrite
# ------------------------------
RewriteCond !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/ [L]
我的主要目标是在地址栏中保持规范标签和 URL 相同,如果它真的影响 SEO
rel="canonical"
link 元素的值(我假设这就是您所说的“规范标签”的意思)应该包含您的规范 URL。如果您在内部 link 中是 linking/using 不同的 URL,那么您在“规范标签”中歪曲了规范 URL。
是的,两者应该是一样的。因此,您要么需要在“规范标签”中附加尾部斜杠,要么在内部 links.
中删除尾部斜杠如果您始终link使用URL 结尾的斜线,那么 Google 可能会忽略您的“规范标签”省略了它。
I am attaching my sites .htaccess
您的 .htaccess
文件似乎与此处无关。您不是在此处强制(或删除)尾部斜杠。 (如果请求非规范 URL,您可以稍后添加规范重定向以强制执行其中一个。)
但是,您眼前的问题无论如何都不会在 .htaccess
中解决。您需要更正您的内部 link 或“规范标签”。
更新:
I am having this link in my template file
<link rel="canonical" href="<?php echo current_url(); ?>" />
It is appending slash with root URL but not appending any slash for other pages. Ca you suggest me some logical condition to write here so that slash gets appended with other pages too
你或许可以这样做:
<link rel="canonical" href="<?php $url = current_url(); echo preg_match('/\/$/',$url) ? $url : $url.'/'; ?>" />
这将在 URL 后面附加一个斜杠(如果 URL 不存在的话)。虽然我确信还有更多 Codeigniter 方法可以做到这一点。 (?)