Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess删除www.并重定向_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

.htaccess删除www.并重定向

.htaccess删除www.并重定向,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我一直在尝试将我的旧站点的旧页面重定向到具有永久重定向的相应新页面。 以及将www.example.com重定向到example.com 我似乎不能同时做这两件事 目前,重定向适用于从exwww.example.com/correctlink到example.com/correctlink 但是只有example.com/Info.aspx被重定向到example.com/about magento demo store,而不是www.example.com/Info.aspx *更新 我想删除

我一直在尝试将我的旧站点的旧页面重定向到具有永久重定向的相应新页面。 以及将
www.example.com
重定向到
example.com

我似乎不能同时做这两件事

目前,重定向适用于从ex
www.example.com/correctlink
example.com/correctlink
但是只有
example.com/Info.aspx
被重定向到
example.com/about magento demo store
,而不是
www.example.com/Info.aspx

*更新

我想删除www.并将40-50个特定地址重定向到新的特定地址。我的问题是,只有当google保存了没有Www的旧链接时,重定向才起作用。如果google存储了包含Www的链接,那么我的重定向永久示例:com/tabid/61/CategoryID/13/ProductID/64/Default.aspx/index.php/solpaneler/re不起作用—— *更新

我的htaccess看起来有点像这样 (在我开始编辑之前,结尾有几行) (我还尝试添加一行广告
重定向永久http://www.example.com/Info.aspx http://example.com/about-magento-demo-store
但它不起作用)


一切都使用重写规则。重写规则和重定向并不总是很好地结合在一起

RewriteRule ^Info\.aspx$ /about-magento-demo-store [L,R=301]

很久以前我也有同样的问题。以下是我的重写规则示例:

# If domain name doesn't end with .com redirect to .com:
RewriteCond %{HTTP_HOST} (.*)\.(fr|net|org|eu) [NC]
RewriteRule (.*) http://%1.com$1 [R=301,L]

# If domain name without "www", add them:
RewriteCond %{HTTP_HOST} ^mydomainname\.(fr|com|net|org|eu) [NC]
# Ca signifie forcément que c'est sans www => forcer redirection :
RewriteRule (.*) http://www.mydomainname.%1$1 [QSA,R=301,L]
NB:把它放在重写规则的顶部,因为它应该先处理,这样你就可以确定你的域名总是以“www”开头。

请注意,只有当mydomainname为“空”即后面没有任何内容时,它才会重定向。它不会像
http://abc.mydomainname.com
而且它不会像
http://abc.def.mydomainname.com


告诉我它是否有效。

太好了!但我有一个静态列表,其中包含我想要重定向到特定页面的特定链接。有没有可能只用静态链接来重写很多规则?你可以这么做。在apache出现性能问题之前,需要重写很多规则。所以你只需要保持简单,就像下面这样?RewriteCond rewriteRule RewriteCond rewriteRule…………像这样继续大约50个链接。。。。。使用静态变量感觉很奇怪!?请再看一下我的代码。您不需要重写条件,并且重写规则不应包含域名和前导斜杠。50个链接就可以了。我个人对50个链接使用重写规则很好。或者我会使用一些自定义404页面和一些php来捕获这些URL。只要选择最容易完成任务的方法。我仍然对以www开头的页面有问题。我希望www.被这个RewriteCond%{HTTP_HOST}^www\.(.+)$[NC]RewriteCond%{HTTPS}s^ on(s)| RewriteRule^HTTP%2://%1%{REQUEST_URI}[L,R=301]删除,这是一个漂亮的脚本,但它并不能解决我的问题。我想删除www.并将40-50个特定地址重定向到新的特定地址。我的问题是,只有当google保存了没有Www的旧链接时,重定向才起作用。如果google存储了包含Www的链接,那么我的重定向permanent/index.php/solpaneler/re不起作用:-)我想这是我在问题中问的:-),但好的,我会尽量让它更清楚
# If domain name doesn't end with .com redirect to .com:
RewriteCond %{HTTP_HOST} (.*)\.(fr|net|org|eu) [NC]
RewriteRule (.*) http://%1.com$1 [R=301,L]

# If domain name without "www", add them:
RewriteCond %{HTTP_HOST} ^mydomainname\.(fr|com|net|org|eu) [NC]
# Ca signifie forcément que c'est sans www => forcer redirection :
RewriteRule (.*) http://www.mydomainname.%1$1 [QSA,R=301,L]