在添加www和删除.php之后添加尾部斜杠

在添加www和删除.php之后添加尾部斜杠,php,.htaccess,url-redirection,friendly-url,Php,.htaccess,Url Redirection,Friendly 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/$1 [R=301,L] # To externally redi

我有一个网站,页面有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/$1 [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}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.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怎么样

我会将它放在上面的
外部
内部
重定向之间,如下所示:

RewriteRule ^(.*)/$ /$1 [L,R=301]
在重写到PHP文件之前,应该将所有URL重定向到其无斜杠版本

选项2:修复CSS 我想您是在相对地引用样式表,比如

<style href="css/style.css" />

您可以将其更改为绝对引用

<style href="/css/style.css" />

不管假定的目录深度如何(用URL中的斜杠表示),它都应该工作

结论
在这种情况下,我会选择选项1,因为它为所有内容提供了一个单一的URL,这在我看来是可取的。

在页面HTML的
部分下方添加此选项:
除了现在关于和关于/两者都在打开之外,这对我也很有效。它可能会创建重复的搜索引擎优化。你说呢?第一个对我来说完美无瑕。感谢@Jan的结论,它帮助我选择了最好的。我注意到添加上述htaccess代码后出现了一个严重的问题。页面中的所有Ajax脚本都停止工作。删除htaccess文件后,它将正常工作。可以解决吗?这些AJAX URL是什么样子的?$.AJAX({URL:“verify.php”,//包含php脚本类型的页面:“POST”,//请求类型数据:{type:“send”,to::},success:function(result){alert(result);调用是否重定向到
/verify
,被捕获是否为规则
#从外部将/dir/file.php重定向到/dir/file