Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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
Html 重构网站和htaccess(SEO问题)_Html_Apache_.htaccess_Redirect - Fatal编程技术网

Html 重构网站和htaccess(SEO问题)

Html 重构网站和htaccess(SEO问题),html,apache,.htaccess,redirect,Html,Apache,.htaccess,Redirect,我们将重构一个约7000页的网站 今天,所有页面都以 http://www.domain.com/locality/id-name-of-the-shop.html 当然,重要的是ID,但店铺的位置和名称有某种形式的“slug”来绕过重音字符(a/è/ì)/umlaut/等问题 我们无法保留“旧式”链接,因此我认为: 1-在htaccess中,首先我将301重定向到.html版本,再重定向到我们的“无扩展”版本(http://www.domain.com/locality/id-name-of

我们将重构一个约7000页的网站

今天,所有页面都以

http://www.domain.com/locality/id-name-of-the-shop.html
当然,重要的是ID,但店铺的位置和名称有某种形式的“slug”来绕过重音字符(a/è/ì)/umlaut/等问题

我们无法保留“旧式”链接,因此我认为:

1-在htaccess中,首先我将301重定向到.html版本,再重定向到我们的“无扩展”版本(
http://www.domain.com/locality/id-name-of-the-shop

2-确定几个链接将是不同的,与重音字符的链接(我估计约10-15%的总链接)。因此,对于相同的内容,我将有两个链接(例如-metrò和)。或者,更加困难和

这(对我来说)很戏剧性,因为我正在使用一个框架和他的slug引擎,非常强大,我不会修改/扩展它。我也不能浏览7000页并手工写下重定向:)

你能给我一个提示吗?非常感谢您,祝您假期愉快

没有扩展的事情很容易,但是将扩展的拉丁字符规范化为ascii版本会有点困难。你将需要列举它们,以涵盖你期望的那些

RewriteEngine On

# no extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+/[0-9]+-[^/.]+)\.html$ /$1 [L,R=301]

# redirect extended latin characters
RewriteRule ^(.*)à(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)è(.*)$ /$1e$2 [L,R=301]
RewriteRule ^(.*)ì(.*)$ /$1i$2 [L,R=301]
# etc.

# redirect + to -
RewriteRule ^(.*)\+(.*)$ /$1-$2 [L,R=301]