Xcode .htaccess语法代码需要修改

Xcode .htaccess语法代码需要修改,xcode,linux,.htaccess,seo,Xcode,Linux,.htaccess,Seo,1) 我正在尝试将所有非www连接到www(包括文件) 例如/subdirectory/+/subdirectory/1.jpg(www 2) 我试图从显示中排除所有的.html和.php文件,并且只希望非尾随版本被索引,其余的是我的域的301 例如/example.html或.php>/example 例如/example.html或.php>>不工作+不被索引 例如/仅工作且仅被索引的示例(避免重复内容) 3) 我试图301所有死链接和404的我的域名 例如,/deadlink或/dea

1) 我正在尝试将所有非www连接到www(包括文件)

例如
/subdirectory/+/subdirectory/1.jpg
(www


2) 我试图从显示中排除所有的.html和.php文件,并且只希望非尾随版本被索引,其余的是我的域的301

例如/example.html或.php>/example

例如/example.html或.php>>不工作+不被索引

例如/仅工作且仅被索引的示例(避免重复内容)


3) 我试图301所有死链接和404的我的域名

例如,/deadlink或/deadlink.pdf>>301'd到我的域名example.com


这是我目前拥有的代码,但是我不确定它是否100%正确。 有人能用这3项任务的有效语法回答吗?谢谢



好的,这里有三个部分,我将分别介绍

在我们开始之前,您只需要一个

RewriteEngine on
它只需要打开一次

您还应设置:

Options -MultiViews
因为多视图可能会导致一些奇怪的问题

重定向到WWW 您当前的规则应该可以工作,但是您可以使用
稍微简化它们=重写条件上的前缀

RewriteCond %{HTTP_HOST} !=www.example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
删除
.php
.html
后缀 这里需要两套独立的规则:一套从URL中删除后缀,另一套在内部读取后缀

让我们先做下半场,因为这更容易:

RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]

RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
不过,有了这个功能,删除后缀就有点棘手了,而且不会与继续进行并尝试将后缀放回的规则相冲突。我能想到的最佳方法是:

RewriteCond %{THE_REQUEST} \.(html|php)
RewriteRule ^(.*)\.(html|php)$ $1 [R=301,L,NC]
但我愿意接受建议

301I关闭所有死链接
不要那样做。如果链接不存在,它应该返回一个404状态的页面。如果您想将访问者从死链接重定向到您的主页,请在404页面中添加一个链接。

好的,这里有三个部分,我将分别介绍它们

在我们开始之前,您只需要一个

RewriteEngine on
它只需要打开一次

您还应设置:

Options -MultiViews
因为多视图可能会导致一些奇怪的问题

重定向到WWW 您当前的规则应该可以工作,但是您可以使用
稍微简化它们=重写条件上的前缀

RewriteCond %{HTTP_HOST} !=www.example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
删除
.php
.html
后缀 这里需要两套独立的规则:一套从URL中删除后缀,另一套在内部读取后缀

让我们先做下半场,因为这更容易:

RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]

RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
不过,有了这个功能,删除后缀就有点棘手了,而且不会与继续进行并尝试将后缀放回的规则相冲突。我能想到的最佳方法是:

RewriteCond %{THE_REQUEST} \.(html|php)
RewriteRule ^(.*)\.(html|php)$ $1 [R=301,L,NC]
但我愿意接受建议

301I关闭所有死链接
不要那样做。如果链接不存在,它应该返回一个404状态的页面。如果您想将访问者从死链接重定向到您的主页,请在404页面中添加一个链接。

Woah,非常感谢!这一切我都需要100%。。。谢谢我亲眼目睹的一件事是。。。如果我转到(不存在),它将转到我的自定义404页面。但是,如果我转到任何.html或.php文件(例如),它仍然会转到我的自定义404页面,但会将此字符串添加到浏览器栏/url。。。如何修复此问题?您可能需要添加一个
RewriteBase
指令。当我执行“Rewrite Base/”时,它删除了“/var/www/vhosts/example.com/httpdocs/”字符串,但它会将您带到不带后缀的.html或.php,而不是保持不变并执行404返回。例如,我希望通过访问example.com/test来查看我的Web空间上的“test.html”文件,我希望url example.com/test.html或test.php执行404返回,但在浏览器中仍然是example.com/test.html或test.php,而不是example.com/var/www/vhosts/example.com/httpdocs/test或example.com/testWoah,谢谢!这一切我都需要100%。。。谢谢我亲眼目睹的一件事是。。。如果我转到(不存在),它将转到我的自定义404页面。但是,如果我转到任何.html或.php文件(例如),它仍然会转到我的自定义404页面,但会将此字符串添加到浏览器栏/url。。。如何修复此问题?您可能需要添加一个
RewriteBase
指令。当我执行“Rewrite Base/”时,它删除了“/var/www/vhosts/example.com/httpdocs/”字符串,但它会将您带到不带后缀的.html或.php,而不是保持不变并执行404返回。例如,我希望通过访问example.com/test来查看我的Web空间上的“test.html”文件,我希望url example.com/test.html或test.php执行404返回,但在浏览器中仍然是example.com/test.html或test.php,而不是example.com/var/www/vhosts/example.com/httpdocs/test或example.com/test