在添加 www 和删除 .php 后添加尾部斜杠
Adding a trailing slash after adding www and removing .php
我的网站包含 about.php、contact.php 和 test.php?id=xyz.
我添加了以下重定向以使其对 SEO 友好。
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.krishibazar\.org$ [NC]
RewriteRule ^(.*)$ http://www.krishibazar.org/ [R=301,L]
# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
这给了我
mydomain.com => www.mydomain.com
mydomain.com/about.php => www.mydomain.com/about
mydomain.com/test.php?id=12 => www.mydomain.com/test?id=12
mydomain.com/about/ => CSS Error
它工作得很好,除非我在最后一个给出错误的地方添加一个尾部斜线。所以建议我防止错误或添加尾部斜杠。
选项 1:去掉斜线(有利于 SEO)
添加一条规则来处理 URL 尾部斜杠如何?
我会把它放在上面的 externally
和 internally
重定向之间,像这样:
RewriteRule ^(.*)/$ / [L,R=301]
在重写到 PHP 文件之前,应该将所有 URL 重定向到它们的无斜线版本。
选项 2:修复您的 CSS
我想你是在相对地引用你的样式表,比如
<style href="css/style.css" />
您可以将其更改为绝对引用
<style href="/css/style.css" />
无论假定的目录深度如何(在 URL 中用斜线表示),它都应该工作。
结论
在这种情况下,我会选择选项 1,因为它为所有内容提供一个 URL,我认为这是更可取的。
我的网站包含 about.php、contact.php 和 test.php?id=xyz.
我添加了以下重定向以使其对 SEO 友好。
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.krishibazar\.org$ [NC]
RewriteRule ^(.*)$ http://www.krishibazar.org/ [R=301,L]
# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
这给了我
mydomain.com => www.mydomain.com
mydomain.com/about.php => www.mydomain.com/about
mydomain.com/test.php?id=12 => www.mydomain.com/test?id=12
mydomain.com/about/ => CSS Error
它工作得很好,除非我在最后一个给出错误的地方添加一个尾部斜线。所以建议我防止错误或添加尾部斜杠。
选项 1:去掉斜线(有利于 SEO)
添加一条规则来处理 URL 尾部斜杠如何?
我会把它放在上面的 externally
和 internally
重定向之间,像这样:
RewriteRule ^(.*)/$ / [L,R=301]
在重写到 PHP 文件之前,应该将所有 URL 重定向到它们的无斜线版本。
选项 2:修复您的 CSS
我想你是在相对地引用你的样式表,比如
<style href="css/style.css" />
您可以将其更改为绝对引用
<style href="/css/style.css" />
无论假定的目录深度如何(在 URL 中用斜线表示),它都应该工作。
结论
在这种情况下,我会选择选项 1,因为它为所有内容提供一个 URL,我认为这是更可取的。